¿Cómo iniciar un trabajo cron sin reiniciar?

¿Cómo iniciar un trabajo cron sin reiniciar?

Utilizo un trabajo cron para llamar offlineimapcada 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 offlineimapejecución de la aplicación. Cuando desee que se reanude, simplemente elimine el /tmp/dontrunofflineimaparchivo.

Respuesta2

Otra solución es editar el crontab y comentar el trabajo para desactivarlo. Eso es un poco mejor, ya que crontambié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.

información relacionada