OpenBSD använder rc.local och rc.shutdown för start resp stopp av daemons (serverprogramvara).
För att hålla lite ordning på start och stoppscript skapar jag en katalog i /etc där jag lägger scripten:
mkdir /etc/rc.d
Apache och MySQL har medföljande start/stopp script som jag länkar till /etc/rc.d:
ln -s /usr/local/apache2/bin/apachectl /etc/rc.d/
Ändra user=mysql till user=_mysql i mysql.server scriptet.
Ändra också i /usr/local/mysql/bin/mysqld_safe
Länka sen startup scriptet till /etc/rc.d
ln -s /usr/local/mysql/share/mysql/mysql.server /etc/rc.d
För start/stopp av ProFTPd måste det skapas ett script (/etc/rc.d/proftpd):
http://www.proftpd.org/docs/howto/Stopping.html
#!/bin/sh
# ProFTPD files
FTPD_BIN=/usr/local/sbin/proftpd
FTPD_CONF=/usr/local/etc/proftpd.conf
PIDFILE=/var/run/proftpd.pid
# If PIDFILE exists, does it point to a proftpd process?
if [ -f $PIDFILE ]; then
pid=`cat $PIDFILE`
fi
if [ ! -x $FTPD_BIN ]; then
echo "$0: $FTPD_BIN: cannot execute"
exit 1
fi
case $1 in
start)
if [ -n "$pid" ]; then
echo "$0: proftpd [PID $pid] already running"
exit
fi
if [ -r $FTPD_CONF ]; then
echo "Starting proftpd..."
$FTPD_BIN -c $FTPD_CONF
else
echo "$0: cannot start proftpd -- $FTPD_CONF missing"
fi
;;
stop)
if [ -n "$pid" ]; then
echo "Stopping proftpd..."
kill -TERM $pid
else
echo "$0: proftpd not running"
exit 1
fi
;;
restart)
if [ -n "$pid" ]; then
echo "Rehashing proftpd configuration"
kill -HUP $pid
else
echo "$0: proftpd not running"
exit 1
fi
;;
*)
echo "usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
För anrop av serverstartfilerna lägger jag till lite i slutet på rc.local resp rc.shutdown:
# MySQL /etc/rc.d/mysql.server start # ProFTPd /etc/rc.d/proftpd start # create PHP session directory rm -rf /var/sess mkdir -p /var/sess chown www /var/sess chmod 700 /var/sess # Apache /etc/rc.d/apachectl start
# Apache /usr/local/apache2/bin/apachectl stop # ProFTPd /etc/rc.d/proftpd stop # MySQL /etc/rc.d/mysql.server stop
Se till att filerna i /etc/rc.d är körbara:
chmod 755 /etc/rc.d/*