Bagaimana cara menghentikan pekerjaan cron yang sedang berjalan?

45

Bagaimana saya bisa menghentikan pekerjaan cron yang sedang berjalan?

nhinkle
sumber
2
Tiga jawaban di bawah ini menafsirkan pertanyaan ini dengan tiga cara. @ GURU, bisakah Anda menjelaskan apa yang ingin Anda lakukan? Apakah Anda ingin membunuh proses yang dimulai oleh cron yang sekarang berjalan, atau apakah Anda ingin mencegah pekerjaan berjalan di masa depan?
jcrawfordor

Jawaban:

29

Anda dapat melakukan ini dengan cara yang sama Anda akan menghentikan proses apa pun.

Untuk menghentikan pekerjaan yang sedang berjalan cron, Anda dapat melakukan salah satu dari yang berikut:

pkill process-name

atau jika Anda tahu PID (Anda dapat menentukannya dengan menjalankan ps):

kill 1234

(mengganti PID yang sebenarnya)

Dijeda sampai pemberitahuan lebih lanjut.
sumber
1
bagaimana daftar cron job yang sedang berjalan?
UWU_SANDUN
5
@UWU_SANDUN: Anda dapat menggunakan pgrepatau grepoutput dari ps. Tidak ada yang istimewa dari proses lari dari cron. Anda hanya perlu mencari prosesnya dengan namanya sendiri. Anda juga dapat melakukan ps fauxww | grep -A 1 '[C]RON'dan garis di bawah garis akan menunjukkan pekerjaan yang dijalankan cron. Anda dapat menyesuaikan angka 1 lebih tinggi untuk melihat subproses jika ada.
Dijeda sampai pemberitahuan lebih lanjut.
Catatan Anda harus menjalankan cygwin sebagai admin untuk mematikan proses. Lihat di sini untuk info lebih lanjut tentang itu.
takanuva15
Menggunakan Ubuntu saya mengetik apa yang disarankan @ takanuva15 ps fauxww | grep -A 1 '[C]RON',. Ini mencantumkan pekerjaan cron saat ini berjalan, jadi setelah itu Anda dapat mencatat PID dan menjalankannya # kill -9 PID. Terima kasih!
russellhoff
@russellhoff: -9seharusnya hanya digunakan sebagai upaya terakhir karena mencegah proses melakukan pembersihan saat keluar.
Dijeda sampai pemberitahuan lebih lanjut.
17

Untuk berhenti menjalankan pekerjaan cron. Pertama, dapatkan id proses dari perintah Anda

top -p $(pgrep -d',' your_command)

misalnya:-

top -p $(pgrep -d',' httpd)

dan lari

kill PIDganti PIDdengan id proses

Miqdad Ali
sumber
14

Aneh, belum ada yang menyebutkan metode ini:

$ crontab -e

Di editor yang dibuka, hapus baris tugas yang ingin Anda hentikan atau masukkan #tanda, simpan dan keluar

misalnya

sebelum

* * * * * some_script1
* * * * * some_script2

setelah

* * * * * some_script1
#* * * * * some_script2

atau

* * * * * some_script1

restart layanan setelah melakukan perubahan oleh

sudo service cron reload
laike9m
sumber
16
Ini tidak menghentikan pekerjaan cron yang sedang berjalan, itu menghentikan pekerjaan cron di masa depan yang akan diluncurkan oleh cron.
Ivan
10

Jika Anda menggunakan Redhat (RHEL) / Fedora Core / Cent OS Linux gunakan perintah berikut:

/etc/init.d/crond stop

Jika Anda menggunakan Debian atau Ubuntu Linux, perintah berikut:

/etc/init.d/cron stop

PS: Anda harus menjadi root untuk melakukan hal-hal ini

Sen
sumber
2
saya pikir itu menghentikan semua crons. untuk menghentikan cron tertentu mungkin saya tahu perintah
dapatkah Anda menyarankan perintah sen
Saya tidak berpikir itu mungkin dengan cara yang lurus .. Mungkin kita harus melakukan peretasan.
Sen
3

Anda dapat mengedit tabel cron dan mengomentari tugas yang dimaksud. Beralih ke pengguna yang mengontrol tugas, ekspor editor pilihan Anda ke lingkungan, lalu gunakan crontab -l:

$ su - root
...
# EDITOR=vi; export EDITOR
# crontab -l
mfe
sumber
1
Itu daftar crontab. Gunakan crontab -euntuk mengeditnya. Untuk sistem yang memilikinya, lebih baik digunakan sudodaripada su. Juga, crontab -eakan bekerja untuk crontab pengguna (atau root), tetapi tidak untuk crontab sistem (misalnya /etc/cron*).
Dijeda sampai pemberitahuan lebih lanjut.
1

crontab -r

akan menghapus semua crontab yang sedang berjalan, atau Anda cukup mengomentari perintah di crontab yang perlu dihentikan.

Sabit
sumber
0

Pertama-tama periksa proses kerja dengan perintah ini.

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

Output perintah ini adalah

599  599 cron
4288  599 \_ CRON

dan sekarang matikan proses dengan perintah ini

pkill -s 4288
aemre
sumber
0

Bekerja untuk saya untuk linux

pkill -9 crontab

Membunuh semua proses yang memiliki nama proses crontab

Sayka
sumber