Dipende dalle distribuzioni.
Se utilizzi distribuzioni derivate da Debian, ci sono almeno due posti appropriati, /etc/rc.local e crontab. Puoi invocare crontab come root,
crontab -e
e poi inserisci questa riga
@reboot /home/my_name/bin/my_command
dove my_command
è un file eseguibile (chmod 755 my_command
).
In alternativa, puoi inserire una linea come questa
/home/my_name/bin/my_command
in /etc/rc.local, e questo verrà eseguito per ultimo. In ogni caso, ricorda che stai usando l'ambiente root, non il tuo. Anche per questo motivo è preferibile utilizzare percorsi assoluti.
Se sei su un systemd distro (Arch Linux, Fedora 19,...) la prima opzione (crontab) è ancora valida, mentre la seconda (/etc/rc.local) non esiste più. In questo caso, dovresti imparare come avviare un servizio che deve essere eseguito da systemctl
, ma questo potrebbe essere più di quanto ti aspettassi con la tua semplice domanda.
Se il tuo sistema esegue una versione di cron
che lo supporta (in particolare Vixie cron), puoi usare @reboot
in un cron job.
Questa è una delle 8 stringhe speciali che supporta.
Citando il crontab(5)
pagina man (dal mio sistema Ubuntu 12.04):
Invece dei primi cinque campi, può apparire una delle otto stringhe speciali:
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
Tieni presente che l'avvio, fino a
@reboot
è interessato, è il momento in cui cron(8) avvio del demone. In particolare, potrebbe essere prima che alcuni demoni di sistema, o altre funzioni, fossero avviati. Ciò è dovuto alla sequenza dell'ordine di avvio della macchina.
Questo è ben lungi dall'essere l'unico modo per eseguire qualcosa all'avvio, ma è un'alternativa.
Praticamente tutte le varianti di Linux (che risalgono a molto, molto tempo fa) hanno un file /etc/rc.local che viene eseguito all'avvio:puoi semplicemente aggiungere il comando.
Detto questo, non è nemmeno necessario farlo. Il modo "corretto" sarebbe modificare/aggiungere la riga kernel.sysrq =1 in /etc/sysctl.conf