Una delle fantastiche funzionalità dei sistemi Linux è la possibilità di modificarlo e configurarlo a proprio piacimento. L'utilità della riga di comando, comunemente denominata Terminale, consente agli utenti di passare comandi al kernel ed eseguire attività cruciali. È una delle tante funzionalità che fanno emergere la differenza tra Linux e altri sistemi operativi.
In questo post, sfrutteremo una delle potenti funzionalità di Linux:la possibilità di eseguire script/comandi e applicazioni automaticamente all'avvio. Questo processo viene eseguito per ottenere diverse cose. Può variare da attività semplici e divertenti come cambiare lo sfondo a cose complicate come il backup dei dati o la crittografia dei file.
Esecuzione di script Linux all'avvio
Iniziamo e diamo un'occhiata ai diversi metodi che possiamo utilizzare per automatizzare gli script e i comandi di avvio di Linux.
Metodo 1:utilizzare l'app GUI "Applicazioni di avvio"
La maggior parte dei metodi che esamineremo richiedono la riga di comando. Tuttavia, le distribuzioni basate su GNOME hanno una semplice utilità grafica che puoi usare. Le "Applicazioni di avvio". Viene preinstallato ed è uno strumento affidabile per gli utenti a cui non piace sporcarsi le mani sul Terminale.
1. Avvia 'Applicazioni di avvio' dal menu delle applicazioni.
2. In "Applicazioni di avvio" finestra principale, vedrai tre opzioni sulla destra; Aggiungi , Rimuovi e Modifica . Per creare il nostro primo script automatico, fai clic su "Aggiungi" pulsante.
3. Si aprirà una finestra pop. Immettere il nome dello script o del programma di avvio. Nella sezione dei comandi, inserisci il comando che desideri eseguire, pronuncia "sudo mkdir /home/tuts/Desktop/My-Test-Script .' In alternativa, puoi inserire il percorso completo del tuo script bash o del comando di sistema eseguibile nei vari 'bin ' directory.
Il comando sopra mi darà sempre una notifica sullo schermo per aggiornare il mio sistema dopo ogni avvio. Questo è solo un semplice esempio. Puoi scrivere script bash avanzati per eseguire varie attività. Se hai appena iniziato con lo scripting bash, guarda alcuni esempi di Bash For Loop qui.
Metodo 2:usa Cron Job
Cron è un demone Linux che esegue attività modificate dall'utente come specificato dall'utente. Queste attività pianificate vengono scritte nel file crontab. Indica al Cron quali lavori eseguire a che ora e in quali eventi.
Il formato base di un file crontab è:
[minuto] [ora] [GiornoMese] [MeseAnno] [GiornoSettimana] [lo script che vuoi eseguire].Tuttavia, per eseguire gli script all'avvio, utilizzeremo @reboot parametro. Se tutto ciò ti suona nuovo, leggi il nostro articolo su Crontab in Linux spiegato con esempi.
Per iniziare, aggiungi un nuovo lavoro cron, esegui il comando seguente sul Terminale.
$ crontab -e
Se non l'hai mai fatto prima, vedrai un'opzione per scegliere il tuo editor predefinito, come mostrato di seguito. Consiglierei nano dal momento che è molto semplice e diretto. Nel mio caso qui, inserirò '1.'
Scriveremo un semplice script che creerà una nuova directory sul desktop all'avvio.
SHELL=/bin/bash @reboot sleep 30 && DISPLAY=:0 My-Test-Directory
Metodo 3:usa /rc.local
Un altro metodo per eseguire script e comandi all'avvio consiste nell'utilizzare il file /rc.local. Per iniziare, esegui il comando seguente sul Terminale.
sudo nano /etc/rc.local
Questo comando aprirà il file rc.local nell'editor nano. Se non fosse presente, ne creerebbe uno. Inserisci i tuoi comandi tra #! /bin/bash e uscita 0 Linee. Puoi anche fornire il percorso completo del tuo script bash qui.
#! /bin/bash //path-to-your-bash-script exit 0
Ora dobbiamo creare il /rc.local file eseguibile. Esegui il comando seguente:
sudo chmod +x /etc/rc.local
Al termine, riavvia il PC e vedrai che le modifiche avranno effetto.
Metodo 4:Systemd
Systemd è una suite di software che contiene varie utilità per gestire i servizi di sistema e i processi del sistema operativo. Il systemd avvia servizi e processi all'avvio.
Possiamo usare Systemd per automatizzare i nostri script e comandi all'avvio. Creiamo e automatizziamo un programma per avvisarci di aggiornare il sistema utilizzando Systemd.
Per iniziare, prendiamo la cartella e il file richiesti in cui scriveremo i nostri comandi. Esegui i comandi seguenti:
$ mkdir -p ~/.config/systemd/user $ nano ~/.config/systemd/user/update-notifier.service
Dopo il secondo comando, si aprirà il nano editor, incolla qui i comandi qui sotto.
[unit] Description=Reminder to Update System PartOf=graphical-session-target [Service] ExecStart=bash -c 'sleep 10; notify-send "Please, Update your System Now" Type=oneshot [Install] WantedBy=graphical-session.target
Questi comandi sono piuttosto semplici. Il sistema invierà il "Promemoria di aggiornamento" 10 secondi dopo il caricamento della sessione grafica dopo l'avvio.
Ora, per assicurarci che lo script venga caricato dopo ogni avvio, dobbiamo renderlo eseguibile. Esegui i comandi seguenti.
$ chmod 644 ~/.config/systemd/user/update-notifier.service $ systemctl --user enable update-notifier.service $ systemctl --user daemon-reload $ reboot
Questo è un modo semplice per automatizzare gli script con Systemd all'avvio. Il metodo sopra esegue script che non richiedono l'accesso come root. Se vuoi creare uno script che richiede l'accesso come root, crea un servizio systemd in “/etc/systemd/system” cartella invece di “~/.config/systemd/user” directory. Inoltre, dovrai omettere la parola 'utente' incluso nel comando precedente.
Conclusione
Questi sono quattro metodi che puoi utilizzare per eseguire automaticamente gli script e i comandi di avvio di Linux all'avvio. Se stai creando script semplici che non richiedono autorizzazioni elevate per l'esecuzione, ti consiglio di utilizzare l''Applicazione di avvio' App GUI o un semplice lavoro cron. Se i tuoi script richiedono l'accesso come root, prendi in considerazione la creazione di un Systemd servizio.