GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire automaticamente comandi/script durante il riavvio o l'avvio

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:

  1. a) il demone cron deve essere in esecuzione (come avviene in circostanze normali) e
  2. 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.

script1.sh:
#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt
script2.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!


Linux
  1. Come impostare lo script di avvio e arresto su Gentoo Linux

  2. Come eseguire un comando bash Linux in uno script PERL?

  3. Come scrivere uno script di avvio per Systemd?

  4. Come eseguire i comandi in Gnuplot usando lo script della shell?

  5. Come eseguire script Python dalla shell

Come eseguire i comandi Linux su un sistema remoto su SSH

Come eseguire automaticamente script e comandi di avvio di Linux

Come creare script di shell

Come eseguire un comando in uno script della shell?

Come eseguire uno script bash?

Systemd:come eseguire lo script solo allo spegnimento (non al riavvio)