I've written a C++ server application for Linux, and it just runs in the
foreground for now. It's come time to ship it to users, and I want to
provide a Red Hat init script with it. I've written such an init script,
and I use this in my script to start the server:
start() {
echo -n $"Starting Dave's Server: "
daemon /usr/bin/daves-server
RETVAL=$?
touch /var/lock/subsys/daves-server
echo
return $RETVAL
}
case "$1" in
start)
start
;;
...
The daemon function doesn't appear to background my executable. Do I
need to fork() in my executable's code, or should daemon be
backgrounding it for me somehow? I've read over the daemon function in
/etc/init.d/functions, and it looks like it ends by running this command:
initlog -q -c /usr/bin/daves-server
Anyway, just curious if I need to do my own forkin()'ing, or if Red
Hat's daemon() is supposed to background it for me.
When I call daemon(int,int) (from unitstd.h) in my executable's code,
the init script works fine, but I was just wondering if I could get away
without doing that...
Thanks!
--Dave
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/