> -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > On Behalf Of Jake Conk > Sent: Tuesday, 18 September 2007 6:36 PM > To: misc@openbsd.org > Subject: Simple startup daemon's on boot question? > > Hello, > > Simple noob question... I've installed a few packages (ie nrpe2 and > openvpn) that on other systems like Linux and even BSD based systems > such as FreeBSD provide means of a rc script which can start and stop > the service and you can configure this script to be executed on boot. > > After installing these packages on OpenBSD I've listed the package > contents and don't notice any equivalent files that would do this. Are > we supposed to write our own startup scripts and place them in > /etc/rc.local to be executed when the system boots? Does OpenBSD not > use rc scripts that start/stop/restart/ and status applications?
I'm probably going to get burnt for this but :-) Put this in /etc/rc.conf.local: --- local_startup_dir=/etc/rc.d --- Put this in /etc/rc.local ------ . /etc/rc.conf.local for f in ${local_startup_dir}/*.sh ; do if [ -x $f ]; then logger -p daemon.notice -t rc.local "Starting $f" $f start sleep 1 fi done ------- Create the /etc/rc.d directory and plonk start/stop executable scripts in there (should all end in .sh). To turn a script off temporarily, make it non-executable or change .sh to .sh.off or something. Use numbers (01, 02 etc) in the front of the filename to determine which scripts run first.. I use a template script like this: ---------- #!/bin/sh # # To start the pf-syslog log catcher # what=syslog-ng where=/usr/local/sbin args="" KillProc() { proc=$1 sig=$2 pid=`ps -xo pid,args | grep -v grep | grep "$proc" | awk '{print $1}'` if [ "X$pid" != "X" ]; then kill -$sig $pid echo $pid else echo "Nothing to kill" fi } case "$1" in "start") if [ -f $where/$what ]; then echo "Starting $what" /$where/$what $args fi ;; "stop") echo "Stopping $what" KillProc $what TERM exit 0 ;; *) echo "$0: Usage $0 start||stop " ;; esac exit 0 ------------ I have found over the years that this approach has a lot of benefits and few drawbacks. Introducing fresh admin staff to BSD is a lot easier if they don't have to do the "grep for PID" "kill -TERM PID" thing to stop a running "service". And of course "look in /etc/rc.local", work out how to start it then start it.. Believe it or not, I've had people reboot servers in order to stop and start a service <sigh>.. ciao dave --- Dave Edwards