以下脚本该置于/etc/init.d 之下,权限让root有'x'(执行), 轮入以下资料:
DAEMON_PATH替换为要跑的脚本的位置
DAEMON 脚本全名
USER 用什么用户名来跑脚本
CONFIGFILE 设定档名称
DAEMONOPTS 执行脚本时要加入的指令
NAME 系统服务名称
DAEMON_PATH替换为要跑的脚本的位置
DAEMON 脚本全名
USER 用什么用户名来跑脚本
CONFIGFILE 设定档名称
DAEMONOPTS 执行脚本时要加入的指令
NAME 系统服务名称
DESC 描述
#!/bin/bash
# myapp daemon
# chkconfig: 345 20 80
# description: myapp daemon
# processname: myapp
DAEMON_PATH=<DIRECTORY_DAEMON_PLACED>
DAEMON=<SCRIPT_NAME>
# Specify the user name
USER=<USER_NAME>
# Specify an alternate config file).
CONFIGFILE="/etc/example.conf"
# Additional options that are passed to the Daemon.
DAEMONOPTS="-c $CONFIGFILE"
NAME=<APP_NAME>
DESC=<APP_NAME>
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
COMMAND="su $USER -c '"$DAEMON_PATH"/"$DAEMON" "$DAEMONOPTS"' > /dev/null 2>&1 &"
case "$1" in
start)
printf "%-50s" "Starting $NAME..."
#cd $DAEMON_PATH
echo "Saving PID" $PID " to " $PIDFILE
if [ ! -z "LC_CTYPE" ]; then
echo "Setting LC_CTYPE env variable to be en_US.utf-8";export LC_CTYPE="en_US.utf-8"
fi
eval $COMMAND
PID=$!
if [ -z $PID ]; then
printf "%s\n" "Fail"
else
echo $PID > $PIDFILE
printf "%s\n" "Ok"
fi
;;
status)
printf "%-50s" "Checking $NAME..."
if [ -f $PIDFILE ]; then
PID=`cat $PIDFILE`
if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
printf "%s\n" "Process dead but pidfile exists"
else
echo "Running"
fi
else
printf "%s\n" "Service not running"
fi
;;
stop)
printf "%-50s" "Stopping $NAME"
PID=`cat $PIDFILE`
cd $DAEMON_PATH
if [ -f $PIDFILE ]; then
kill -TERM $PID
printf "%s\n" "Ok"
rm -f $PIDFILE
else
printf "%s\n" "pidfile not found"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {status|start|stop|restart}"
exit 1
esac