The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > High Level Programming
.
google unix.com




View Single Post in the UNIX and Linux Forums - Click on the Thread or Permalink to View Entire Thread -->
  #1 (permalink)  
Old 07-07-2008
vino's Avatar
vino vino is offline Forum Staff  
Supporter (in vino veritas)
  
 

Join Date: Feb 2005
Location: Bangalore, India
Posts: 2,796
How to find if a process a daemon ?

I have a scenario where I need to find if a process is a daemon process or not. This check needs to be done from within the process. I know there are no direct API's to do so. I have explored these options.

1. ctermid() - this can be unsuccessful as per the man pages
2. int devtty; if ((devtty = open ("/dev/tty", O_RDWR)) < 0) then it is a daemon. Are there any other cases, where this may not be true ?
3. Since setsid() is used to detach from a terminal, perhaps getsid() can be used to check for process group leader and session leader.
4. Look if parent pid is 1 or not. Can a daemon process have a ppid other than 1 ?

Are there more options ? I dont know if there is a best way to do this, but what would be the most appropriate way ?