Saya menebak masalah yang ingin Anda pecahkan adalah bahwa Anda memiliki beberapa proses yang berjalan di komputer anda yang kadang-kadang bertingkah, dan duduk selamanya mengelompokkan inti.
Hal pertama yang ingin Anda lakukan adalah mencoba memperbaiki program yang menjadi gila. Sejauh ini solusi terbaik. Saya akan berasumsi itu tidak mungkin, atau Anda perlu kluge cepat untuk menjaga kotak Anda berjalan sampai diperbaiki.
Anda, setidaknya, ingin membatasi skrip Anda hanya untuk menekan satu program yang Anda khawatirkan. Akan lebih baik jika izin membatasi skrip Anda seperti ini (mis. Skrip Anda berjalan sebagai pengguna X, satu-satunya hal lain yang berjalan sebagai X adalah programnya).
Bahkan lebih baik menggunakan sesuatu seperti ulimit -t
membatasi jumlah total waktu CPU yang dapat digunakan oleh program. Demikian pula, jika menghabiskan semua memori, periksa ulimit -v
. Kernel memberlakukan batasan ini; lihat halaman bash
manual (ini adalah built-in shell) dan halaman setrlimit(2)
manual untuk detailnya.
Jika masalahnya bukan proses yang berjalan mengamuk, tetapi justru terlalu banyak proses yang berjalan, maka terapkan beberapa bentuk penguncian untuk mencegah lebih dari X dari menjalankan (atau — ini seharusnya menjadi akrab— ulimit -u
). Anda juga dapat mempertimbangkan untuk mengubah prioritas penjadwal proses-proses tersebut (menggunakan nice
atau renice
), atau bahkan lebih drastis, menggunakan sched_setscheduler
untuk mengubah kebijakan SCHED_IDLE
.
Jika Anda membutuhkan lebih banyak kontrol, lihat grup kontrol (cgroups). Bergantung pada kernel yang Anda jalankan, Anda sebenarnya dapat membatasi jumlah waktu CPU, memori, I / O, dll. Yang dikonsumsi oleh seluruh kelompok proses secara bersamaan. Kelompok kontrol cukup fleksibel; mereka mungkin dapat melakukan apa pun yang Anda coba lakukan, tanpa klasp yang rapuh. Arch Linux Wiki memiliki pengantar untuk cgroup yang layak dibaca, seperti halnya seri cgroup Neil Brown di LWN.
while [ 1 ]
membuat saya bertanya-tanya berapa banyak CPU script ini akan mengkonsumsi. Juga, 3 panggilan kekill -9
dalam skrip berjalan terus? Ini membuatku merinding ...