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 -HUP
cronjob에 신호를 보내야 프로세스도 수집되고 자체적으로 종료/종료됩니다.
또는 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