ฉันจะหยุดงาน cron ที่กำลังทำงานอยู่ได้อย่างไร
ฉันจะหยุดงาน cron ที่กำลังทำงานอยู่ได้อย่างไร
คำตอบ:
คุณสามารถทำเช่นเดียวกับที่คุณหยุดกระบวนการใด ๆ
หากต้องการหยุดงานที่กำลังดำเนินอยู่cron
คุณสามารถเลือกทำอย่างใดอย่างหนึ่งต่อไปนี้:
pkill process-name
หรือถ้าคุณรู้ PID (คุณสามารถตรวจสอบได้โดยการเรียกใช้ps
):
kill 1234
(แทน PID จริง)
pgrep
หรือการส่งออกของgrep
ไม่มีอะไรพิเศษเกี่ยวกับการดำเนินการดำเนินการจากps
cron
คุณเพียงแค่ค้นหากระบวนการภายใต้ชื่อของมันเอง นอกจากนี้คุณยังสามารถทำps fauxww | grep -A 1 '[C]RON'
และสายใต้เส้น (s) cron
จะแสดงงานที่ถูกเรียกใช้โดย คุณสามารถปรับหมายเลข 1 ที่สูงขึ้นเพื่อดูกระบวนการย่อยได้ถ้ามี
ps fauxww | grep -A 1 '[C]RON'
. นี่แสดงรายการงาน cron ปัจจุบันที่กำลังทำงานดังนั้นหลังจากนั้นคุณสามารถบันทึก PID ลงและดำเนินการ# kill -9 PID
ได้ ขอบคุณ!
-9
ควรใช้เป็นทางเลือกสุดท้ายเนื่องจากจะป้องกันไม่ให้กระบวนการทำความสะอาดใด ๆ เมื่อมีการออก
หากต้องการหยุดการเรียกใช้งาน cron ขั้นแรกรับรหัสกระบวนการของคำสั่งของคุณด้วย
top -p $(pgrep -d',' your_command)
เช่น:-
top -p $(pgrep -d',' httpd)
และเรียกใช้
kill PID
แทนที่PID
ด้วย ID กระบวนการ
แปลกไม่มีใครพูดถึงวิธีนี้:
$ crontab -e
ในตัวแก้ไขที่เปิดอยู่ให้ลบบรรทัดของงานที่คุณต้องการหยุดหรือแทรก#
เครื่องหมายบันทึกและออก
เช่น
ก่อน
* * * * * some_script1
* * * * * some_script2
หลังจาก
* * * * * some_script1
#* * * * * some_script2
หรือ
* * * * * some_script1
เริ่มบริการใหม่หลังจากทำการเปลี่ยนแปลงโดย
sudo service cron reload
หากคุณใช้ Redhat (RHEL) / Fedora Core / Cent OS Linux ให้ใช้คำสั่งต่อไปนี้:
/etc/init.d/crond stop
หากคุณใช้ Debian หรือ Ubuntu Linux คำสั่งต่อไปนี้:
/etc/init.d/cron stop
PS: คุณควรรูทเพื่อทำสิ่งเหล่านี้
พิมพ์ครั้งแรกps aux
เพื่อดูว่ากระบวนการทั้งหมดกำลังทำงานอยู่
จากนั้นจดบันทึกPID
แต่ละกระบวนการที่คุณต้องการหยุด
จากนั้นพิมพ์
kill {PID
} สำหรับแต่ละกระบวนการ
ยังดูที่ลิงค์เหล่านี้ (ลิงค์ superuser):
คุณสามารถแก้ไขตาราง cron และแสดงความคิดเห็นงานที่เป็นปัญหา สลับไปยังผู้ใช้ที่ควบคุมงานส่งออกตัวแก้ไขที่คุณเลือกลงในสภาพแวดล้อมจากนั้นใช้crontab -l
:
$ su - root
...
# EDITOR=vi; export EDITOR
# crontab -l
crontab -e
เพื่อแก้ไข สำหรับระบบที่มีมันก็ยังดีกว่าที่จะใช้แทนsudo
su
นอกจากนี้crontab -e
จะทำงานสำหรับผู้ใช้ (หรือราก) crontab แต่ไม่ crontab ระบบ (เช่น/etc/cron*
)
crontab -r
จะลบ crontabs ทั้งหมดที่กำลังทำงานอยู่หรือคุณสามารถคอมเม้นท์คำสั่งใน crontab ที่ต้องหยุดทำงาน
ก่อนอื่นให้ตรวจสอบกระบวนการทำงานด้วยคำสั่งนี้
ps -o pid,sess,cmd afx | egrep "( |/)cron( -f)?$"
เอาต์พุตของคำสั่งนี้คือ
599 599 cron
4288 599 \_ CRON
และตอนนี้ฆ่ากระบวนการด้วยคำสั่งนี้
pkill -s 4288
ทำงานให้ฉันเพื่อ linux
pkill -9 crontab
ฆ่ากระบวนการทั้งหมดที่มีชื่อกระบวนการcrontab