[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: starting/stoping program on boot/shutdown



What is start-stop-daemon ?

The problem I have is that I can find absolutely no documentation 
on "start-stop-daemon".  There is a useless stub of a man page 
that directs one to the --help output or the source code.  
/sbin/start-stop-daemon is apparently a perl script, but I do 
not know perl nor do I find any explaination in the script, 
other than the --help text.  

I think that if it is enough of a Debian standard that virtualy 
all of the scripts that dpkg installs in /etc/init.d use it, 
we are due an explanation of what it does, how it is used, etc.  

I would propose, instead, the use of standard shell commands, 
e.g. 

	DAEMON=/somepath/somedaemon
	CONFIG=/etc/rc.config.d/thisscript

	if [ -f $CONFIG -a -x $DAEMON ] ; then
		[ $VERBOSE ] && echo $0 $1
		. $CONFIG
	else
		[ $VERBOSE ] && echo no ${DAEMON}, exiting.
		exit 0
	fi

	if ps -ef|grep -v grep|grep ${DAEMON} ; then
	# DAEMON is already running, dont bother to start it.
		[ "$1" = "start" ] && exit 0
	else
	# DAEMON is not running, dont bother to stop it.
		[ "$1" = "stop" ] && exit 0
	fi

Without the docs, I don't know if this is what start-stop-daemon 
does, but this sort of thing is routinely done under some of the 
commercial unix's such as Solaris, Dgux, and Hpux.

Jim Pick wrote:
> 
> > So how do I start/stop a plain program during boot/shutdown? Is it
> > safe, that root runs this thing? Should I run it under another
> > account? Which one and do I have to create a homedir for that?
> > This program should only be started once and not by "normal"
> > users. How do I achieve this? Where would such a program be
> > located (based on debian philosophy)?
> 
> I'd run it as another user - definitely not as root.  Especially
> when you are running a binary file where you can't inspect the
> source.
> 
> Just create another user, ie. "des", and give it a home directory.
> 
> Here's a rather long-winded example of using start-stop-daemon
> to run a process as another user.  (This is for a postgresql
> server I have installed in /usr/local)
> 
> start-stop-daemon --start --verbose --exec /usr/local/pgsql/bin/postmaster
> --startas /bin/sh -- -c 'echo "/usr/local/pgsql/bin/postmaster -D/var/pgdata >
> /var/log/postgresql/server.log 2>&1 &" | su postgres'
> 
> There's probably an easier way to do this...
> 
> I was participating too, until they changed the programs around and I
> didn't have enough time to re-setup everything.
> 
> They've completed 2.6753% of the keyspace - wow.  :-)
> 
> Cheers,
> 
>  - Jim
> 
>     ---------------------------------------------------------------
> 
>                Part 1.2   Type: application/pgp-signature


--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-user-request@lists.debian.org . 
Trouble?  e-mail to templin@bucknell.edu .


Reply to: