Jag har ett scenario där jag måste finna om en process är en
daemon process eller inte. Denna kontroll måste göras inifrån processen. Jag vet att det finns något direkt API är att göra det. Jag har utforskat dessa alternativ.
1. ctermid () - detta kan misslyckas enligt mannen sidor
2. int devtty; if ((devtty \u003d open ( "/ dev / TTY" O_RDWR)) <0) så är det en
daemon. Finns det några andra fall där detta kan inte vara sant?
3. Sedan setsid () används för att koppla från en terminal, kanske GETSID () kan användas för att kontrollera processen gruppledare och sessionen ledare.
4. Kolla om föräldern pid är 1 eller inte. Kan en
daemon processen har ett ppid än 1?
Finns det fler alternativ? Jag vet inte om det är bästa sättet att göra detta, men vad skulle vara det lämpligaste sättet?