近几天选型项目管理系统,最终定下来使用 Redmine。维护时感觉启动、重启敲那么长的命令很麻烦,而且还不能在操作系统启动时自动启动,就自己写了个 init 脚本,在此分享给大家。
以下是脚本代码:
#!/bin/sh
#
# redmine Redmine Daemon
#
# chkconfig: - 99 36
# description: Remine Daemon
. /etc/rc.d/init.d/functions
HOMEPATH=/home/redmine/redmine
PIDFILE=$HOMEPATH/tmp/pids/server.pid
PARAMS="-e production -p 80 -d"
SERVER=mongrel
cd $HOMEPATH
start(){
echo 'Starting redmine...'
ruby script/rails server $SERVER $PARAMS
RETVAL=$?
return $RETVAL
}
stop(){
echo -n 'Stopping redmine...'
killproc -p $PIDFILE -INT
RETVAL=$?
return $RETVAL
}
status(){
echo -n 'Redmine is '
if [ -f $PIDFILE ]
then
PID=`/bin/cat $PIDFILE`
STATUS=`/bin/ps -p $PID`
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo 'running.'
return $RETVAL
fi
fi
echo 'not running.'
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
echo
;;
status)
status
;;
*)
echo "Usage $0 {start|stop|status|restart}"
exit 1
esac
#
# redmine Redmine Daemon
#
# chkconfig: - 99 36
# description: Remine Daemon
. /etc/rc.d/init.d/functions
HOMEPATH=/home/redmine/redmine
PIDFILE=$HOMEPATH/tmp/pids/server.pid
PARAMS="-e production -p 80 -d"
SERVER=mongrel
cd $HOMEPATH
start(){
echo 'Starting redmine...'
ruby script/rails server $SERVER $PARAMS
RETVAL=$?
return $RETVAL
}
stop(){
echo -n 'Stopping redmine...'
killproc -p $PIDFILE -INT
RETVAL=$?
return $RETVAL
}
status(){
echo -n 'Redmine is '
if [ -f $PIDFILE ]
then
PID=`/bin/cat $PIDFILE`
STATUS=`/bin/ps -p $PID`
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo 'running.'
return $RETVAL
fi
fi
echo 'not running.'
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
echo
;;
status)
status
;;
*)
echo "Usage $0 {start|stop|status|restart}"
exit 1
esac
将以上脚本保存为 /etc/init.d/redmine 后,就可以使用 chkconfig 来配置随系统启动了:
chkconfig --add redmine
chkconfig redmine on
chkconfig redmine on