Como iniciar um cron job sem reiniciar?

Como iniciar um cron job sem reiniciar?

Eu uso um cron job para ligar a offlineimapcada 2 minutos:

*/2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

Eu precisava encerrar o cron job para corrigir um problema. Como posso reiniciar o cron job (sem reinicializar)? Encontrei esta 'solução' online:

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

Porém, usando ps -ef | grep ..., não vejo o trabalho... O que há de errado?

Responder1

Abordagem Cron

Se você tiver privilégios sudo, poderá parar/iniciar o serviço cron. Acredito que é isso que a solução que você encontrou online estava explicando.

Dependendo de qual distribuição Linux você está usando, você pode executar estes comandos:

# redhat distros
$ sudo /etc/init.d/crond stop
... do your work ...
$ sudo /etc/init.d/crond start

Ou faça estes comandos:

# Debian/Ubuntu distros
$ sudo service cron stop
... do your work ...
$ sudo service cron start

Abordagem de bloqueio de tipo de arquivo

Você também pode colocar um arquivo "dontrunofflineimap" no diretório /tmp quando quiser que a tarefa offlineimap seja adiada e não seja executada por um tempo.

O processo funcionaria assim. Você toca em um arquivo em /tmp assim:

touch /tmp/dontrunofflineimap

O cron job seria modificado assim:

*/2 * * * * [ -f /tmp/dontrunofflineimap ] || /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

Embora esse arquivo exista, ele basicamente bloqueará a offlineimapexecução do aplicativo. Quando quiser continuar, basta excluir o /tmp/dontrunofflineimaparquivo.

Responder2

Outra solução é editar o crontab e comentar o trabalho para desativá-lo. Isso é um pouco melhor, pois cronpode ser agendar outros trabalhos também.

O seguinte comando ajuda:

crontab -e

Se for o crontab do root e não do usuário:

sudo crontab -e

Para comentar o trabalho, adicione um #no início da linha. Assim:

# */2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

Responder3

Você pode lerhttp://tutscode.com/how-to-use-crontab-in-linux/para obter mais informações sobre o crontab.

informação relacionada