![¿Cómo iniciar un trabajo cron sin reiniciar?](https://rvso.com/image/31689/%C2%BFC%C3%B3mo%20iniciar%20un%20trabajo%20cron%20sin%20reiniciar%3F.png)
Utilizo un trabajo cron para llamar offlineimap
cada 2 minutos:
*/2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1
Necesitaba finalizar el trabajo cron para solucionar un problema. ¿Cómo puedo entonces reiniciar el trabajo cron (sin reiniciar)? Encontré esta 'solución' en línea:
mylogin@myhost:~$ sudo /etc/init.d/cron restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service cron restart
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop cron ; start cron. The restart(8) utility is also available.
cron stop/waiting
cron start/running, process 26958
Sin embargo, al usar ps -ef | grep ...
, no veo el trabajo... ¿Qué pasa?
Respuesta1
Enfoque cron
Si tiene privilegios de sudo, puede detener/iniciar el servicio cron. Creo que eso es lo que explicaba la solución que encontraste en línea.
Dependiendo de la distribución de Linux que estés usando, puedes ejecutar estos comandos:
# redhat distros
$ sudo /etc/init.d/crond stop
... do your work ...
$ sudo /etc/init.d/crond start
O haz estos comandos:
# Debian/Ubuntu distros
$ sudo service cron stop
... do your work ...
$ sudo service cron start
Enfoque de bloqueo de tipo de archivo
También puede colocar un archivo "dontrunofflineimap", por ejemplo en el directorio /tmp, cuando desee que la tarea offlineimap se detenga y no se ejecute por un momento.
El proceso funcionaría así. Tocas un archivo en /tmp así:
touch /tmp/dontrunofflineimap
El trabajo cron se modificaría así:
*/2 * * * * [ -f /tmp/dontrunofflineimap ] || /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1
Mientras ese archivo exista, básicamente bloqueará la offlineimap
ejecución de la aplicación. Cuando desee que se reanude, simplemente elimine el /tmp/dontrunofflineimap
archivo.
Respuesta2
Otra solución es editar el crontab y comentar el trabajo para desactivarlo. Eso es un poco mejor, ya que cron
también podría ser la programación de otros trabajos.
El siguiente comando ayuda:
crontab -e
Si es el crontab de root y no el del usuario:
sudo crontab -e
Para comentar el trabajo, agregue un #
al principio de la línea. Como esto:
# */2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1
Respuesta3
Puedes leerhttp://tutscode.com/how-to-use-crontab-in-linux/para obtener más información sobre crontab.