Mengapa kami menggunakan setsid () saat daemonisasi suatu proses?


18

UNTUK membuat layanan (daemon), kita bercabang dengan orangtua dan membuatnya keluar sementara menjadikan anak menjadi pemimpin sesi dengan memanggil setsid(). Selain itu mengapa kita menggunakan setsid ()? Proses anak yatim kami ditangani oleh init(meskipun tidak semua kasus) proses.

Mengapa kita menggunakan stsid ()? Apakah ada hubungan antara setsid()dan penanganan SIGHUPsinyal.

Jawaban:


13

Kami menggunakan setsid () karena jika kami hanya membunuh orang tua, anak tersebut juga akan dibunuh, setsid ()

membuat sesi baru jika proses panggilan bukan pemimpin grup proses. Proses panggilan adalah pemimpin sesi baru, pemimpin grup proses dari grup proses baru, dan tidak memiliki terminal pengendali.

Orang tua adalah pemimpin grup proses pertama, membunuhnya - atau membunuh sesi / terminal - membunuh grup, itulah sebabnya kami mengganti pemimpin (dan membuat sesi baru saat kami berada di sana).


1
Itu benar tetapi apakah itu memiliki realtion dengan sinyal SIGHUP karena saya kow itu dikirim ketika terminal pengendali hilang
Kalu

7
Induk mendapat SIGHUP ketika terminal pengendali ditutup. Anak tidak akan mendapatkan SIGHUP karena sedang dalam sesi baru.
ZN13
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.