È necessario uno script eseguito ad ogni riavvio in +1 minuto. Ho messo un disco @reboot
ma è troppo presto per la mia sceneggiatura. Come eseguirlo dopo il riavvio?
È necessario uno script eseguito ad ogni riavvio in +1 minuto. Ho messo un disco @reboot
ma è troppo presto per la mia sceneggiatura. Come eseguirlo dopo il riavvio?
Risposte:
Lo script deve mai essere eseguito solo un minuto dopo l'avvio o può essere utilizzato anche in altre occasioni? Nel primo caso, è possibile aggiungere sleep 60
all'inizio dello script o, nel secondo caso, aggiungerlo al file crontab:
@reboot sleep 60 && my_script.sh
Come è stato sottolineato da sr_, però, forse lo stai affrontando nel modo sbagliato, e uno script init.d o rc.d appropriato sarebbe una soluzione più solida.
script -s X
che si tradurrebbe sleep X
all'interno dello script).
taskrunner
, né, del /etc/init.d
Se è necessario eseguire qualcosa dopo il riavvio quando la rete sarà disponibile, ad esempio, è possibile scrivere un'unità systemd che verrà eseguita al momento richiesto (ovviamente funzionerà solo su sistemi con systemd).
Per fare ciò, creare un file /etc/systemd/system/my_script.service
con i seguenti contenuti:
[Unit]
Description=My script that requires network
After=network.target
[Service]
Type=oneshot
ExecStart=/full/path/to/my_script.sh
[Install]
WantedBy=multi-user.target
Quindi eseguire:
sudo systemctl daemon-reload
sudo systemctl enable my_script
Hai finito!
Vorrei usare at
. Come in:
@reboot echo /root/bin/do_the_stuff | at now + 2 minutes
# at assigns it an execution time truncated to whole minutes,
# so this means it will execute in 1--2 minutes.
... con l'aggiunta del detto avvertimento che se ciò che vuoi veramente è eseguirlo dopo tutte le altre cose, dovresti controllare come farlo nell'init che il tuo sistema operativo sta usando.