Neden bir süreç arka planını oluştururken setsid () kullanıyoruz?


18

Bir hizmet (arka plan programı) oluşturmak için ebeveynini çatallıyoruz ve çocuğu arayarak oturum lideri haline getirirken çıkmasını sağlıyoruz setsid(). Üstelik neden setid () kullanıyoruz? Yetim sürecimiz init(her durumda olmasa da) süreç tarafından halledilir .

Neden stsid () kullanıyoruz? Sinyal setsid()işleme ile taşıma SIGHUPsinyali arasında herhangi bir ilişki var mı ?

Yanıtlar:


13

Setsid () kullanıyoruz çünkü sadece ebeveyni öldürürsek çocuk da öldürülür, setsid ()

çağıran süreç bir süreç grubu lideri değilse yeni bir oturum oluşturur . Çağıran süreç yeni oturumun lideri, yeni süreç grubunun süreç grubu lideri ve kontrol terminali yok.

Ebeveyn ilk süreç grup lideridir, onu öldürür - veya oturumu / terminali öldürür - grubu öldürür, bu yüzden lideri değiştiririz (ve biz oradayken yeni bir oturum oluştururuz).


1
Doğru ama kontrol terminali kaybolduğunda gönderildiği gibi SIGHUP sinyali ile herhangi bir gerçek var mı
Kalu

7
Kontrol terminali kapalı olduğunda ebeveyn bir SIGHUP alır. Çocuk yeni bir oturumda olduğu için SIGHUP alamaz.
ZN13
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.