Hello All, I have one dumb question, I wanted to write a process which monitors the exit status of the daemon, The Main process would fork a service, which would internally fork a child and , exit from the process. If main process wants to query the status of the daemon, how it can be achived. For ex : Process A would call a syslog service, which would internally fork a child, daemon it and exit, so if process A wants to wait for the syslog process, is it possible. Thanks in advance Regards, Yash.
Yash, There are two ways to do this either use the signals API or IPC(inter-process communication) libraries. I don't known the functions off the top of my head but this can get you started. Nick On 2015-01-06 10:22 AM, Yash Jain wrote:
Hello All, I have one dumb question, I wanted to write a process which monitors the exit status of the daemon,
The Main process would fork a service, which would internally fork a child and , exit from the process. If main process wants to query the status of the daemon, how it can be achived.
For ex : Process A would call a syslog service, which would internally fork a child, daemon it and exit, so if process A wants to wait for the syslog process, is it possible.
Thanks in advance
Regards, Yash.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Tue, Jan 6, 2015 at 3:22 PM, Yash Jain <yash2learn@gmail.com> wrote:
Hello All, I have one dumb question, I wanted to write a process which monitors the exit status of the daemon,
The Main process would fork a service, which would internally fork a child and , exit from the process. If main process wants to query the status of the daemon, how it can be achived.
For ex : Process A would call a syslog service, which would internally fork a child, daemon it and exit, so if process A wants to wait for the syslog process, is it possible.
waitpid() signal()
Thanks in advance
Regards, Yash.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Thank you Warm Regards Anuz
Anuz Pratap Singh Tomar <chambilkethakur <at> gmail.com> writes:
On Tue, Jan 6, 2015 at 3:22 PM, Yash Jain <yash2learn <at> gmail.com>
wrote:Hello All,I have one dumb question,
I wanted to write a process which monitors the exit status of the daemon,
The Main process would fork a service, which would internally fork a child and , exit from the process. If main process wants to query the status of the daemon, how it can be achived.
For ex : Process A would call a syslog service, which would internally fork a child, daemon it and exit, so if process A wants to wait for the syslog process, is it possible.
waitpid()
signal() WIFEXITED WEXITSTATUS
Thanks in advance
Regards, Yash.
_______________________________________________ Kernelnewbies mailing listKernelnewbies <at> kernelnewbies.orghttp://lists.kernelnewbies.org/mailman/listinfo/kernelnewbi es
-- Thank you Warm RegardsAnuz
_______________________________________________ Kernelnewbies mailing list Kernelnewbies <at> kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Wed, Jan 7, 2015 at 12:57 AM, Nizam Haider <nizamhaider786@gmail.com> wrote:
Anuz Pratap Singh Tomar <chambilkethakur <at> gmail.com> writes:
On Tue, Jan 6, 2015 at 3:22 PM, Yash Jain <yash2learn <at> gmail.com>
wrote:Hello All,I have one dumb question,
I wanted to write a process which monitors the exit status of the daemon,
The Main process would fork a service, which would internally fork a child and , exit from the process. If main process wants to query the status of the daemon, how it can be achived.
For ex : Process A would call a syslog service, which would internally fork a child, daemon it and exit, so if process A wants to wait for the syslog process, is it possible.
waitpid()
signal() WIFEXITED WEXITSTATUS
doubt -- wait and waitpid will be for the parent process to wait for its child. but for a daemon the parent is init . so the exit status should be sent to init and not to his process. then how does he get the exit status sudip
wait and waitpid would not work because a Process A would wait for process B(which is a parent of the daemon), process B immediately exits and process A would be notified. In my case, I want to query the status of process C(which is child of process B) / grandchild of process A which is a child of init after process B terminates, fork fork process A -------------> Process B --------------> Process C Process A should query the status of process C Once process C is daemon, Process C would be the the child of init. Can we do something by making a process A to be a daemon (child of init), because process A and process C are sibling, can siblings query the status of each other. IPC is not an option for me, because there are several service and process A do not know how and what is the process C, it should just monitor so many child process. Regards, Yash. On Wed, Jan 7, 2015 at 1:35 PM, Sudip Mukherjee <sudipm.mukherjee@gmail.com> wrote:
On Wed, Jan 7, 2015 at 12:57 AM, Nizam Haider <nizamhaider786@gmail.com> wrote:
Anuz Pratap Singh Tomar <chambilkethakur <at> gmail.com> writes:
On Tue, Jan 6, 2015 at 3:22 PM, Yash Jain <yash2learn <at> gmail.com>
wrote:Hello All,I have one dumb question,
I wanted to write a process which monitors the exit status of the daemon,
The Main process would fork a service, which would internally fork a child and , exit from the process. If main process wants to query the status of the daemon, how it can be achived.
For ex : Process A would call a syslog service, which would internally fork a child, daemon it and exit, so if process A wants to wait for the syslog process, is it possible.
waitpid()
signal() WIFEXITED WEXITSTATUS
doubt -- wait and waitpid will be for the parent process to wait for its child. but for a daemon the parent is init . so the exit status should be sent to init and not to his process. then how does he get the exit status
sudip
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Mit, 2015-01-07 at 14:40 +0530, Yash Jain wrote:
wait and waitpid would not work because a Process A would wait for process B(which is a parent of the daemon), process B immediately exits and process A would be notified. In my case, I want to query the status of process C(which is child of
process B) / grandchild of process A which is a child of init after process B terminates,
And exactly here ends the usual Unix story because when "Process C" is a child of `init` (or whatever process has pid 1), "Process A" shouldn't receive a SIGCLD (because that is delivered only to it's parent process and one of the main purposes of daemonizing "Process C" is to get to into that position;-).
fork fork process A -------------> Process B --------------> Process C
Process A should query the status of process C
Once process C is daemon, Process C would be the the child of init.
Can we do something by making a process A to be a daemon (child of init), because process A and process C are sibling, can siblings query the status of each other.
Not with the usual model as outlined above. The short term solution are - to implement it in the daemons/program/applications. - to start the daemon in some "debug mode" so that it doesn't daemonize itself. - (if you can't that or won't fix the daemon) to hack init so that when some PID terminates, it notifies the other process. There were patches on LKML so that any process can choose to inherit daemonized processes forked by (it's own;-) child processes (instead of 'init' - the main reason being the typical desktop manager (kdn, gdm, xdm, ....) process which also may want to do that) but I don't know the state of them .... [ crap deleted ] Kind regards, Bernd -- "I dislike type abstraction if it has no real reason. And saving on typing is not a good reason - if your typing speed is the main issue when you're coding, you're doing something seriously wrong." - Linus Torvalds
participants (7)
-
Anuz Pratap Singh Tomar -
Bernd Petrovitsch -
nick -
Nizam Haider -
Sudip Mukherjee -
Valdis.Kletnieks@vt.edu -
Yash Jain