Necesita un script ejecutado en cada reinicio en +1 minuto. Puse un registro @reboot
pero es demasiado pronto para mi guión. ¿Cómo ejecutarlo en algún momento después del reinicio?
Necesita un script ejecutado en cada reinicio en +1 minuto. Puse un registro @reboot
pero es demasiado pronto para mi guión. ¿Cómo ejecutarlo en algún momento después del reinicio?
Respuestas:
¿El script solo tiene la intención de ejecutarse un minuto después del arranque, o también se puede usar en otros momentos? En el primer caso, puede agregarlo sleep 60
al comienzo de su script, o en el último caso, agregarlo al archivo crontab:
@reboot sleep 60 && my_script.sh
Sin embargo, como ha señalado sr_, tal vez esté abordando esto de manera incorrecta, y un script init.d o rc.d adecuado sería una solución más sólida.
script -s X
que se traduciría al sleep X
interior del script).
taskrunner
, ni, para el caso,/etc/init.d
Si necesita ejecutar algo después de reiniciar cuando la red esté disponible, por ejemplo, puede escribir la unidad systemd que se ejecutará en el momento requerido (por supuesto, esto solo funcionará en sistemas con systemd).
Para hacerlo, cree un archivo /etc/systemd/system/my_script.service
con los siguientes contenidos:
[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
Luego ejecuta:
sudo systemctl daemon-reload
sudo systemctl enable my_script
Ya terminaste!
Me gustaría utilizar at
. Como en:
@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 la advertencia adicional mencionada de que si lo que realmente desea es ejecutarlo después de todas las demás cosas, debe verificar cómo hacerlo en el init que está usando su sistema operativo.