- Como posso ver as tarefas do crontab em andamento?
- Como posso parar manualmente as tarefas do crontab que estão em andamento?
Esta [pergunta] é sobre os processos cron atuais em execução?
sim
Para matar um processo manualmente, uma maneira é usar o pkill
Eu tinha pensado em pkill / killall, mas alguns dos meus comandos no arquivo crontab são respectivamente! isso significa que, após concluir um comando, o próximo será iniciado! por exemplo:
sudo crontab -e
00 10 * * * /usr/bin/wget LINK ; shutdown -h now
Então, se eu matar wget
, o computador será desligado !!! -> Eu quero matar uma tarefa cron completamente, não faz parte dela!
O próximo pkill
problema: E os scripts? (Eu importei alguns scripts bash para crontab -e
) ->sudo pkill ???
Respostas:
Primeiro, use apenas um comando por linha no crontab. Mude esta linha do crontab:
assim parece:
e crie
/path/to/my/crontab/script1.sh
com este conteúdo:Obviamente, não esqueça de dar permissão de execução:
Em segundo lugar, você pode ver as tarefas em execução do crontab, em um formato útil e legível, na saída de:
Eles aparecerão nas primeiras linhas, algo como isto:
A primeira coluna é PID, a segunda é a ID da sessão e a terceira é o comando iniciado pelo cron. Você pode matar todos os processos relacionados a uma tarefa cron específica usando o ID da sessão; portanto, no exemplo acima, você deve matar o ID da sessão 4289:
fonte
sh ps: cmd: keyword not found ps: illegal argument: afx
ps -o pid,sess,cmd -afx | egrep "( |/)cron( -f)?$"
Matar um processo manualmente de uma maneira é usar
pkill
. O pkill interromperá todos os processos que possuem o seguinte padrão em seu nome. por exemplo, para parar todos os processos wget, use:fonte
sudo crontab -e
=>00 10 * * * /usr/bin/wget LINK ; shutdown -h now
=> Então, se eu matar o wget , o computador será desligado !!! -> Eu quero matar uma tarefa cron completamente, não faz parte dela! o próximo problema do pkill: E os scripts? (Importei alguns scripts do bash paracrontab -e
) ->sudo pkill ???
mude seu cronjob assim
Isso deve funcionar, porque
&&
significa que o segundo comando é executado apenas quando o primeiro foi finalizado corretamente (retornando o status 0 ao console / sistema), o que não deve ser o caso (porque o processo foi interrompido pelo usuário e ele deve retornar outro valor que 0).fonte