Sono sempre affascinato dalle cose che accadono dietro le quinte quando avvio un sistema Linux e accedo. Premendo il pulsante di accensione su un bare metal o avviando una macchina virtuale, metti in moto una serie di eventi che portano a un sistema completamente funzionante, a volte in meno di un minuto. Lo stesso vale quando ci si disconnette e/o si spegne il sistema.
Ciò che lo rende più interessante e divertente è il fatto che puoi fare in modo che il sistema operativo esegua determinate azioni all'avvio e all'accesso o alla disconnessione.
In questo articolo distro-agnostico discuteremo i metodi tradizionali per raggiungere questi obiettivi in Linux.
Nota :Assumiamo l'uso di Bash come shell principale per eventi di logon e logout. Se ti capita di utilizzarne uno diverso, alcuni di questi metodi potrebbero funzionare o meno. In caso di dubbio, fai riferimento alla documentazione della tua shell.
Esecuzione di script Linux durante il riavvio o l'avvio
Esistono due metodi tradizionali per eseguire un comando o eseguire script durante l'avvio:
Metodo n. 1:utilizzare un processo cron
Oltre al consueto formato (minuti/ora/giorno del mese/mese/giorno della settimana) ampiamente utilizzato per indicare una pianificazione, cron scheduler consente anche l'uso di @reboot
. Questa direttiva, seguita dal percorso assoluto dello script, lo farà eseguire all'avvio della macchina.
Tuttavia, ci sono due avvertimenti a questo approccio:
- a) il demone cron deve essere in esecuzione (come avviene in circostanze normali) e
- b) lo script o il file crontab deve includere le variabili di ambiente (se presenti) che saranno necessarie (fare riferimento a questo thread StackOverflow per maggiori dettagli).
Metodo n. 2 – Usa /etc/rc.d/rc.local
Questo metodo è valido anche per le distribuzioni basate su systemd. Affinché questo metodo funzioni, devi concedere le autorizzazioni di esecuzione a /etc/rc.d/rc.local
come segue:
# chmod +x /etc/rc.d/rc.local
e aggiungi il tuo script in fondo al file.
L'immagine seguente mostra come eseguire due script di esempio (/home/gacanepa/script1.sh
e /home/gacanepa/script2.sh
) utilizzando un cron lavoro e rc.local , rispettivamente, e i rispettivi risultati.
#!/bin/bash DATE=$(date +'%F %H:%M:%S') DIR=/home/gacanepa echo "Current date and time: $DATE" > $DIR/file1.txtscript2.sh:
#!/bin/bash SITE="Tecmint.com" DIR=/home/gacanepa echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt
Tieni presente che a entrambi gli script devono essere concesse le autorizzazioni di esecuzione in precedenza:
$ chmod +x /home/gacanepa/script1.sh $ chmod +x /home/gacanepa/script2.sh
Esecuzione di script Linux all'accesso e al logout
Per eseguire uno script all'accesso o al logout, usa ~.bash_profile
e ~.bash_logout
, rispettivamente. Molto probabilmente, dovrai creare quest'ultimo file manualmente. Basta trascinare una riga invocando il tuo script nella parte inferiore di ogni file nello stesso modo di prima e sei pronto per iniziare.
Riepilogo
In questo articolo abbiamo spiegato come eseguire lo script al riavvio, all'accesso e al logout. Se riesci a pensare ad altri metodi che avremmo potuto includere qui, sentiti libero di utilizzare il modulo di commento qui sotto per segnalarli. Non vediamo l'ora di sentirti!