creating rc.d scripts
Jim Stapleton
stapleton.41 at gmail.com
Wed Mar 21 17:52:21 UTC 2007
I created a script in my /usr/local/etc/rc.d directory, but for some
reason it doesn't auto start when I start my machine. I added entries
to the rc.conf that I thought should work, but they did not. On a
related not, my rc.conf file doesn't seem to disable autostart of
sendmail. Could anyone advise me?
Thanks,
-Jim Stapleton
rc.conf:
==================================================
#hostname/ifconfig/defaultrouter omitted
usbd_enable="YES"
linux_enable="YES"
sshd_enable="YES"
ntpdate_enable="YES"
ntpd_enable="YES"
sendmail_disable="YES"
sendmail_enable="NO"
mail_enable="NO"
inetd_flags="-wW -a 192.168.1.84"
syslogd_flags="-b 192.168.1.84"
rpcbind_enable="NO"
sb_server_enable="YES"
sb_enable="YES"
==================================================
Script:
sjss at elrond 17:46:04 (0) ~ > cat /usr/local/etc/rc.d/sb_server
#!/bin/sh
# Start or stop sb_server
# $FreeBSD: ports/mail/py_spambayes/
# PROVIDE: sb_server
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
#
name="sb_server"
prefix=/usr/local
# Define these sb_server_* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
# /etc/rc.conf.d/gkrellmd
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
#
sb_server_enable=${sb_server_enable:-"NO"} # Enable gkrellmd
sb_server_flags=${sb_server_flags:-"-u 8880"} # Flags to gkrellmd
. /etc/rc.subr
#we keep everyting in /var/sb/db
cd /var/db/sb
if [ "$1" = "start" ]
then
if [ -e "sb_pid" ] #process already started
then
#attempt to see if the process in the PID file is a SB server
ps -A | grep "$(cat sb_pid)" | grep -v grep | grep sb_server.py
if [ "$?" != "0" ]
then
echo "PID file existed, but had no valid SB PIDs, cleaning"
rm sb_pid
else
echo "PID file found in '${prefix}, server already started"
exit 1
fi
fi
ERR=0
name="sb_server"
rcvar=`set_rcvar`
/usr/bin/env python ${prefix}/bin/sb_server.py ${sb_server_flags} &
if [ "$?" -ne "0" ]
then
echo "SB Server initialization failed"
exit 1
fi
sleep 2
ps -A | grep sb_server.py | grep -v "grep" | cut -f2 -d ' ' | tail
-n 1 > sb_pid
if [ "$?" -ne "0" ]
then
echo "SB Server pid file creation failed"
fi
fi
if [ "$1" = "stop" ]
then
if [ -e "sb_pid" ]
then
kill $(cat sb_pid)
if [ "$?" -ne "0" ]
then
echo "Could not kill the SB Server process"
exit 1
fi
rm sb_pid
if [ "$?" -ne "0" ]
then
echo "Could not remove PID file but SB Server process killed."
exit 1
fi
else
echo "No PID file foundin ${prefix}"
exit 1
fi
fi
More information about the freebsd-questions
mailing list