Como parar um trabalho cron em execução no momento?


45

Como posso interromper um trabalho cron que está em execução no momento?


2
As três respostas abaixo interpretam essa pergunta de três maneiras. @GURU, você poderia esclarecer o que gostaria de fazer? Deseja interromper um processo iniciado pelo cron que está em execução no momento ou deseja impedir que o trabalho seja executado no futuro?
Jcrawfordor

Respostas:


29

Você pode fazer isso da mesma maneira que interrompe qualquer processo.

Para interromper um crontrabalho em execução no momento , siga um destes procedimentos:

pkill process-name

ou se você conhece o PID (você pode determiná-lo executando ps):

kill 1234

(substituindo o PID real)


1
como listar quais trabalhos cron em execução no momento?
UWU_SANDUN 25/09

5
@UWU_SANDUN: Você pode usar pgrepou grepa saída de ps. Não há nada de especial em um processo executado cron. Você apenas procuraria o processo com seu próprio nome. Você também pode fazer ps fauxww | grep -A 1 '[C]RON'e as linhas abaixo da (s) linha (s) mostrarão os trabalhos executados cron. Você pode ajustar o número 1 mais alto para ver subprocessos, se houver.
Dennis Williamson

Observe que você deve estar executando o cygwin como administrador para eliminar processos. Veja aqui para mais informações sobre isso.
takanuva15

Usando o Ubuntu, digitei o que @ takanuva15 sugeriu ps fauxww | grep -A 1 '[C]RON',. Isso lista os trabalhos cron atuais em execução, para que você possa anotar e executar o PID # kill -9 PID. Obrigado!
22418 Russellhoff #

@russellhoff: -9deve ser usado apenas como último recurso, pois impede que o processo faça qualquer limpeza ao sair.
Dennis Williamson

17

Para interromper a execução da tarefa cron. Primeiro, obtenha a identificação do processo do seu comando com

top -p $(pgrep -d',' your_command)

por exemplo:-

top -p $(pgrep -d',' httpd)

e corra

kill PIDsubstitua PIDpela identificação do processo


14

Estranho, ninguém mencionou este método:

$ crontab -e

No editor aberto, exclua a linha da tarefa que deseja parar ou insira um #sinal, salve e saia

por exemplo

antes

* * * * * some_script1
* * * * * some_script2

depois de

* * * * * some_script1
#* * * * * some_script2

ou

* * * * * some_script1

reinicie o serviço depois de fazer alterações

sudo service cron reload

16
Isso não interrompe um trabalho cron em execução no momento, ele interrompe futuros trabalhos cron que serão iniciados pelo cron.
Ivan

10

Se você estiver usando o Redhat (RHEL) / Fedora Core / Cent OS Linux, use o seguinte comando:

/etc/init.d/crond stop

Se você estiver usando Debian ou Ubuntu Linux, o seguinte comando:

/etc/init.d/cron stop

PS: Você deve ser root para fazer essas coisas


2
eu acho que interrompe todos os crons .para parar especial cron pode eu sei o comando

você pode sugerir qualquer comando sen

Não acho que seja possível de uma maneira direta. Talvez devêssemos fazer um hack.
Sen


3

Você pode editar a tabela cron e comentar a tarefa em questão. Alterne para o usuário que controla a tarefa, exporte o editor de sua escolha para o ambiente e use crontab -l:

$ su - root
...
# EDITOR=vi; export EDITOR
# crontab -l

1
Isso lista o crontab. Use crontab -epara editá-lo. Para sistemas que o possuem, é preferível usar em sudovez de su. Além disso, crontab -efuncionaria para o usuário (ou root) crontab, mas não para o sistema crontab (por exemplo /etc/cron*).
Dennis Williamson

1

crontab -r

removeria todos os crontabs em execução ou você pode simplesmente comentar os comandos no crontab que precisam ser parados.


0

Antes de tudo, verifique o processo de trabalho com este comando.

ps -o pid,sess,cmd afx | egrep "( |/)cron( -f)?$"

A saída deste comando é

599  599 cron
4288  599 \_ CRON

e agora mate o processo com este comando

pkill -s 4288

0

Trabalhando para mim no linux

pkill -9 crontab

Mata todo processo com o nome do processo crontab

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.