Daemon question

Jerry Feldman gaf at blu.org
Fri Feb 10 16:49:24 EST 2006


On Friday 10 February 2006 4:08 pm, David Kramer wrote:
> I have a program that I want to run in the background from the
> /etc/init.d scripts.  I copied another init.d script and modified it, and
> it runs the app, but doesn't put it in the background.  The
> /etc/init.d/myapp script continues to run.
>
> Isn't that the whole point of the daemon function in functions? To put
> the application in the background?
>
> For the record, this is on FC4.

Did you specify daemon in the script:
daemon $myprog $OPTIONS

(In SuSE, it would be:
startproc $myprog $OPTIONS)

Also, you will find that most daemons have code such as:

pid_t mypid = fork();
if (mypid == -1) // error stuff here
else if (mypid > 0) // Parent process - time to exit
	exit(0);
/* The daemon is now running */

There is also a sigaction to set a signal so the parent does not become a 
zombie (I think SIGCHILD). I don't have time right now to find that code, 
but you should be able to track it down. The reason for this code is to 
force it to have a parent process id==1. 

-- 
Jerry Feldman <gaf at blu.org>
Boston Linux and Unix user group
http://www.blu.org PGP key id:C5061EA9
PGP Key fingerprint:053C 73EC 3AC1 5C44 3E14 9245 FB00 3ED5 C506 1EA9



More information about the Discuss mailing list