Difference between revisions of "Initscripts/Writing rc.d scripts"
m |
m (→Naming scheme) |
||
Line 1: | Line 1: | ||
==Naming scheme== | ==Naming scheme== | ||
− | + | The name of the rc.d script should follow the name of the executable, not the name of the package. It must reflect what it's going to do. | |
==Requirements== | ==Requirements== |
Revision as of 11:27, 5 December 2008
Naming scheme
The name of the rc.d script should follow the name of the executable, not the name of the package. It must reflect what it's going to do.
Requirements
If a daemon accepts arguments, the script must have its equivalent in /etc/conf.d.
Example
A proper example for tftpd:
/etc/conf.d/tftpd:
TFTPD_ARGS="-l -s /var/tftpboot -c"
/etc/rc.d/tftpd
#!/bin/bash . /etc/rc.conf . /etc/rc.d/functions TFTPD_ARGS= [ -f /etc/conf.d/tftpd ] && . /etc/conf.d/tftpd PID=`pidof -o %PPID /usr/sbin/in.tftpd` case "$1" in start) stat_busy "Starting TFTPD" [ -z "$PID" ] && /usr/sbin/in.tftpd ${TFTPD_ARGS} if [ $? -gt 0 ]; then stat_fail else add_daemon in.tftpd stat_done fi ;; stop) stat_busy "Stopping TFTPD" [ ! -z "$PID" ] && kill $PID &> /dev/null if [ $? -gt 0 ]; then stat_fail else rm_daemon in.tftpd stat_done fi ;; restart) $0 stop $0 start ;; *) echo "usage: $0 {start|stop|restart}" esac exit 0