현재 실행 중인 크론 탭을 나열하고 중지합니다.

현재 실행 중인 크론 탭을 나열하고 중지합니다.

cronjob을 생성했는데 오랫동안 실행되었지만 지금은 중지하는 방법을 모르겠습니다.

답변1

불행하게도 이 페이지와 Google 결과에 나열된 다른 페이지에서는 보류 중인 크론 작업을 처리하는 방법에 대해 pstree를 언급하는 사람이 아무도 없습니다.

pstree

트리의 크론 부분 보기

답변2

쉘 스크립트 래퍼가 있다면 cronjob이 충분히 오래 실행되면 시간 초과되어야 한다고 생각합니다. cronjob 호출 중에 시간 초과가 발생하면 래퍼는 SIGHUP 또는 SIGALARM을 보내야 합니다. 이 같은:

50 * * * * /usr/bin/my_cron_wrapper_timeout -t 1 /usr/bin/my_command_cron_job_to_run

이 cron_wrapper_timeout은 기본적으로 -t 스위치 옵션을 사용하여 1시간이 경과한 후 시간 초과 신호를 보내도록 되어 있습니다. 그런 다음 kill -HUPcronjob에 신호를 보내야 프로세스도 수집되고 자체적으로 종료/종료됩니다.

또는 ALARM 신호 시간 초과를 처리하고 부드럽게 사라지기 전에 정리되도록 cronjob 자체에 코드를 작성해야 합니다.

편집하다

이것이 바로 제가 말하는 것입니다: 감시견http://chihungchan.blogspot.com/2011/03/no-more-hanging-jobs-in-cron.html

답변3

crontab이 실행을 시작한 프로세스를 중지해야 합니다.

#kill -HUP PID (PID: Process ID is the process running)

PID가 실행 중인 프로세스(및 추가 정보)와 어떻게 관련되는지 확인하려면 top명령을 사용하여 열 순서를 변경한 <다음 다음을 사용하십시오.>

또한 ps -ax|grep [your_process_file]선택한 이름으로 필터링된 실행 중인 프로세스를 나열해 보세요.

-앉다= 끊다

답변4

먼저 이 명령을 사용하여 작업자 프로세스를 확인합니다.

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

이 명령의 출력은 다음과 같습니다.

599  599 cron
4288  599 \_ CRON

이제 이 명령으로 프로세스를 종료하세요.

pkill -s 4288

관련 정보