- Bagaimana saya bisa melihat tugas-tugas crontab yang sedang berlangsung?
- Bagaimana saya bisa menghentikan tugas-tugas crontab yang sedang berlangsung, secara manual?
Apakah [ini] pertanyaan tentang melihat proses cron yang sedang berjalan?
iya nih
Untuk mematikan proses secara manual, salah satu caranya adalah menggunakan pkill
Saya telah memikirkan pkill / killall, tetapi beberapa perintah saya di file crontab masing-masing! artinya setelah menyelesaikan perintah, perintah berikutnya akan dimulai! sebagai contoh:
sudo crontab -e
00 10 * * * /usr/bin/wget LINK ; shutdown -h now
Jadi, jika saya bunuh wget
, komputer akan dimatikan !!! -> Saya ingin membunuh tugas cron sepenuhnya, bukan bagian dari itu!
Masalah selanjutnya pkill
: Bagaimana dengan skrip? (Saya sudah mengimpor beberapa skrip bash ke crontab -e
) ->sudo pkill ???
Jawaban:
Pertama, gunakan hanya satu perintah per baris di crontab. Ubah baris crontab ini:
jadi sepertinya:
dan buat
/path/to/my/crontab/script1.sh
dengan konten ini:Tentu saja, jangan lupa untuk memberikan izin eksekusi:
Kedua, Anda dapat melihat menjalankan tugas-tugas crontab, dalam format yang bermanfaat dan dapat dibaca, di output dari:
Mereka akan muncul di baris pertama, kira-kira seperti ini:
Kolom pertama adalah PID, kedua adalah Session ID dan ketiga adalah perintah yang dimulai oleh cron. Anda dapat mematikan semua proses yang terkait dengan tugas cron tertentu menggunakan ID Sesi, jadi dalam contoh di atas Anda harus membunuh Session ID 4289:
sumber
sh ps: cmd: keyword not found ps: illegal argument: afx
ps -o pid,sess,cmd -afx | egrep "( |/)cron( -f)?$"
Untuk mematikan proses secara manual, salah satu caranya adalah menggunakan
pkill
. pkill akan menghentikan semua proses yang memiliki pola berikut dalam namanya. misalnya untuk menghentikan semua proses wget, gunakan:sumber
sudo crontab -e
=>00 10 * * * /usr/bin/wget LINK ; shutdown -h now
=> Jadi, Jika saya membunuh wget , komputer akan dimatikan !!! -> Saya ingin membunuh tugas cron sepenuhnya, bukan bagian dari itu! masalah pkill berikutnya: Bagaimana dengan skrip? (Saya sudah mengimpor beberapa skrip bash kecrontab -e
) ->sudo pkill ???
ubah cronjob Anda seperti ini
Ini harus bekerja, karena
&&
berarti bahwa perintah kedua hanya dijalankan, ketika yang pertama selesai dengan benar (mengembalikan status 0 ke konsol / sistem), yang seharusnya tidak terjadi (karena proses terbunuh oleh pengguna dan seharusnya mengembalikan nilai lain dari 0).sumber