GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Memantau Atau Membunuh Proses Yang Telah Dimulai Oleh Cron?

Saya memiliki beberapa bot, yang dijalankan oleh Penjadwal Sistem pada interval waktu tertentu. Tetapi terkadang karena beberapa kesalahan logis saya harus menghentikan bot ini secara manual. Bagaimana saya bisa menemukan proses ini dijalankan oleh penjadwal dan mematikannya?

Jawaban yang Diterima:

Anda dapat mematikan proses berdasarkan nama. Misalnya, di Linux, *BSD dan Solaris, pkill myprogram membunuh semua proses yang namanya mengandung myprogram (gunakan pkill '^myprogram$' untuk pencocokan tepat). Jika Anda menjalankannya sebagai pengguna non-root, hanya proses pengguna tersebut yang akan dihentikan, dan ada opsi lebih lanjut untuk mengontrol pencocokan (lihat manual di sistem Anda untuk detailnya).

Jika Anda ingin secara khusus menargetkan proses yang dimulai oleh penjadwal, dan Anda mematikan proses secara manual, Anda dapat menjalankan ps f (Khusus Linux) atau pstree (Khusus Linux) atau ptree untuk menampilkan proses di pohon, dan melihat proses mana yang dimulai oleh cron.

Jika Anda ingin dapat mematikan proses ini secara otomatis dalam metode buatan sendiri, buat mereka menyimpan ID prosesnya dalam sebuah file. Jenis file ini disebut pidfile ketika digunakan untuk hanya memiliki satu contoh proses yang berjalan (yang mungkin atau mungkin bukan sesuatu yang Anda inginkan). Jika Anda menginginkan beberapa instance, simpan PID dalam file terpisah di direktori umum; inilah cuplikan shell yang melakukan ini:

pid_dir=/var/run/myprogram # must have been created e.g. at boot time
myprogram &
pid_file=$pid_dir/$!.pid
touch "$pid_file"
wait
rm "$pid_file"

Solusi yang lebih baik, jika Anda memiliki kriteria sulit untuk mendeteksi proses yang tidak terkendali, adalah dengan menggunakan program pemantauan umum, atau dalam kasus sederhana hanya membatasi berapa lama proses tersebut diizinkan untuk berjalan. Anda mungkin menemukan tautan ini berguna:

  • “Monit dapat memulai proses jika tidak berjalan, memulai ulang proses jika tidak merespons, dan menghentikan proses jika menggunakan terlalu banyak sumber daya.”
  • Saya butuh bantuan dengan cronjob untuk mengawasi proses yang kabur dan membunuhnya
  • Bagaimana cara membatasi penggunaan sumber daya untuk menghemat CPU+RAM untuk proses tertentu?
  • Apakah ada cara untuk membatasi jumlah memori yang dapat digunakan oleh proses tertentu di Unix?
Terkait:Debian – Di mana Debian menyimpan riwayat konektivitas jaringan?
Linux
  1. Bagaimana cara mematikan semua proses dengan nama parsial yang diberikan?

  2. Cara membunuh proses zombie

  3. Membunuh proses di Raspbian

  1. Cara mematikan proses zombie di Linux

  2. Bagaimana cara menggunakan Ctrl+C untuk mematikan semua proses latar belakang yang dimulai dalam skrip Bash?

  3. Bagaimana saya tahu jika server Linux saya telah diretas?

  1. Apa Proses Zombie Dan Bagaimana Menemukan &Membunuh Proses Zombie?

  2. Proses Yang Memiliki Pid 0?

  3. Cara Membunuh Proses yang Berjalan di Linux