Tengo un trabajo que se ejecuta para siempre desde el momento en que comienza. Entonces, quiero iniciarlo solo una vez después de ingresarlo en el archivo "crontab -e" y guardarlo (o) cada vez que se reinicie.
¿Cómo lograr esto?
Tengo un trabajo que se ejecuta para siempre desde el momento en que comienza. Entonces, quiero iniciarlo solo una vez después de ingresarlo en el archivo "crontab -e" y guardarlo (o) cada vez que se reinicie.
¿Cómo lograr esto?
Respuestas:
Si desea que un comando se ejecute una vez en una fecha posterior, use el at
comando.
Si desea que un comando se ejecute una vez en el arranque del sistema, la solución correcta es usar:
@reboot
prefijo especial (ver página de manual)Esta última es la única opción para un usuario no root.
at now
@reboot
.
Puede usar en (1) para ejecutar un trabajo en algún momento en el futuro. Sin embargo, si desea ejecutar algo en el arranque y seguirá ejecutándose por sí solo, ¿tal vez desee una entrada en /etc/init.d/ para ello? Eso te permitiría iniciarlo en el arranque.
kill
(suponiendo que tenga los permisos para hacerlo, lo que hace para sus propios procesos). Hacer un guión de inicio es realmente fácil. Busque /etc/init.d/
una secuencia de comandos que no sea muy larga y modele la suya después, o busque en google making init scripts (your distribution)
.
/etc/init.d/skeleton
en openSuSE) que puede adaptar para su uso.
Un trabajo que se ejecuta solo una vez y se ejecuta para siempre hasta que le digas que muera se llama "demonio". Normalmente se inician mediante scripts de inicio en /etc/init.d/.
Si su trabajo finaliza en algún momento y puede considerarse un tipo de trabajo único, entonces es posible que desee ver el comando at. Por ejemplo, si quisiera ejecutar el comando find a las 10 p.m. esta noche y solo esta vez lo haría:
$ at 10PM
at> find /root > /root/find_results.list
at> <EOT>
job 3 at 2010-02-10 22:00
Echa un vistazo al comando at