ฉันจะหยุดงาน 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