현재 실행중인 crontab 작업을보고 중지하려면 어떻게해야합니까?


20
  1. 진행중인 crontab 작업을 어떻게 볼 수 있습니까?
  2. 진행중인 crontab 작업을 수동으로 중지하려면 어떻게 해야합니까?

[이] 질문은 현재 실행중인 크론 프로세스를 보는 것입니까?

한 가지 방법으로 프로세스를 수동으로 종료하려면 pkill을 사용하십시오.

pkill / killall에 대해 생각했지만 crontab 파일의 일부 명령은 각각! 그것은 명령을 완료 한 후 다음 명령이 시작됨을 의미합니다! 예를 들면 다음과 같습니다.

sudo crontab -e
00 10 * * * /usr/bin/wget LINK ; shutdown -h now

따라서 내가 죽이면 wget컴퓨터의 전원이 꺼집니다 !!! -> 나는 cron 작업을 완전히 죽이고 싶습니다.

다음 pkill문제 : 스크립트는 어떻습니까? (나는 bash 스크립트를에 가져왔다 crontab -e)->sudo pkill ???


현재 실행중인 cron 프로세스를 보는 것에 대한 질문이 있습니까? 또는 크론 작업 목록? 더 명확하게 질문을 편집하십시오. 실행중인 크론 작업을 중지하려면 ( askubuntu.com/q/272419/66980 )
Mohammad Etemaddar 2016 년

편집; 1. 예, 현재 실행중인 크론 프로세스를보고 있습니까? (프로세스를 포 그라운드로 가져오고 싶습니다); 2. 그런 다음 수동으로 중지하고 싶습니까?! (crontab 일정이 아님)
mini

질문에 추가 정보를 추가하는 가장 좋은 방법은 편집 버튼으로 질문을 편집하는 것 입니다. 그렇게하는 것이 더 잘 보이고 주석은 주로 2 차적인 임시 목적을위한 것입니다. 다양한 상황에서 주석이 제거됩니다. 질문에 중요한 것은 질문 자체에 있어야합니다.
guntbert

답변:


42

먼저 crontab에서 한 줄에 하나의 명령 만 사용하십시오. 이 crontab 줄을 변경하십시오.

00 10 * * * /usr/bin/wget LINK ; shutdown -h now

그래서 다음과 같이 보입니다 :

00 10 * * * /path/to/my/crontab/script1.sh

/path/to/my/crontab/script1.sh이 내용으로 작성 하십시오.

#!/bin/bash
/usr/bin/wget LINK
shutdown -h now

물론 실행 권한을 부여하는 것을 잊지 마십시오.

chmod +x /path/to/my/crontab/script1.sh

둘째, 다음과 같은 결과로 crontab 작업을 유용하고 읽기 쉬운 형식으로 실행하는 것을 볼 수 있습니다.

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

첫 줄에 다음과 같이 나타납니다.

1108  1108 cron
4288  1108 \_ CRON
4289  4289     \_ /bin/sh -c /path/to/my/crontab/script1.sh
4290  4289         \_ /bin/bash /path/to/my/crontab/script1.sh
4295  4289             \_ /usr/bin/wget LINK

첫 번째 열은 PID이고 두 번째 열은 세션 ID이며 세 번째 열은 cron에서 시작한 명령입니다. 세션 ID를 사용하여 특정 크론 태스크와 관련된 모든 프로세스를 종료 할 수 있으므로 위 예에서 세션 ID 4289를 종료해야합니다.

pkill -s 4289

1
"crontab 작업 실행"명령을 실행할 때 이것을 얻습니다.sh ps: cmd: keyword not found ps: illegal argument: afx
AlecRust

cron은 자신의 프로세스를 보여줄 수있는 "편리한"방법을 제공하지 않습니까?
Cirelli94

@alecrust : 이것을 시도ps -o pid,sess,cmd -afx | egrep "( |/)cron( -f)?$"
Bulrush

0

한 가지 방법은 프로세스를 수동으로 종료하는 것 pkill입니다. pkill은 이름에 다음과 같은 패턴이있는 모든 프로세스를 중지합니다. 예를 들어 모든 wget 프로세스를 중지하려면 다음을 사용하십시오.

sudo pkill wget

pkill / killall에 대해 생각했지만 crontab 파일의 일부 명령은 각각! 명령을 완료 한 후 다음 명령이 시작됨을 의미합니다! 예를 들어 : sudo crontab -e=> 00 10 * * * /usr/bin/wget LINK ; shutdown -h now=> 따라서 wget 을 종료하면 컴퓨터의 전원이 꺼집니다 !!! -> 나는 cron 작업을 완전히 죽이고 싶습니다. 다음 pkill 문제 : 스크립트는 어떻습니까? (일부 bash 스크립트를 가져 왔습니다 crontab -e)->sudo pkill ???
mini

0

이렇게 당신의 cronjob을 변경

00 10 * * * /usr/bin/wget LINK && shutdown -h now

이것은 &&첫 번째 명령이 올바르게 완료되었을 때 (콘솔 / 시스템으로 상태 0을 반환) 두 번째 명령 만 실행됨을 의미 하기 때문에 작동 하지 않아야합니다 (사용자가 프로세스를 종료하고 다른 값을 반환하고 0)을 반환해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.