Fork bisa gagal. Apakah kamu mengerti? Sungguh, apakah kamu mengerti? Ini sangat serius. Garpu mungkin gagal. Sama seperti malloc. Tidak sering, tetapi ketika itu terjadi, Anda tidak bisa begitu saja menerima dan mengabaikannya. Anda harus melakukan sesuatu dalam kasus ini.
Tampaknya semua orang tahu bahwa fork mengembalikan 0 ke proses anak, dan beberapa angka positif ke induk - pid anak. Ini mengeluarkan nomor ini, yang digunakan nanti.
Tebak apa yang terjadi jika Anda tidak memeriksa respons kesalahan? Ya, Anda akan memperlakukan "-1" (kesalahan garpu) sebagai pid yang valid.
Ini baru permulaan. Rasa sakit yang sebenarnya dimulai nanti ketika saatnya mengirim sinyal. Anda mungkin ingin menutup proses anak.
Anda melakukan kill (pid, signal). Misalnya kill (pid, 9).
Apa yang terjadi jika pid adalah -1? Ini sangat penting untuk diketahui. Sangat penting.
...
...
...
Di sini saya akan memasukkan halaman bantuan kill (2) dari Linux Anda.
Jika pid adalah -1, maka sig dikirim ke setiap proses yang proses pemanggilannya memiliki izin untuk mengirim sinyal, kecuali untuk proses 1 (init) ...
Lihat? Membunuh
pid -1
sama dengan membunuh semua proses lainnya. Jika Anda adalah root, maka semuanya sudah berakhir. Anda dan init ditinggalkan. Segala sesuatu yang lain hilang, hilang, hilang
Apakah Anda memiliki kode yang mengatur proses? Pernah menemukan mesin benar-benar mati kecuali untuk konsol teks getty / login (yang dimulai ulang init, tentu saja) dan manajer proses? Mungkin disalahkan atas oomkiller ini pada intinya?
Mungkin itu bukan salahnya. Lebih baik periksa bahwa Anda belum menjalankan kill (-1).
Unix memiliki cukup banyak jebakan dan jebakan beruang untuk semua selera.