私は Linux と OpenXCAP の初心者であり、CentOS 6 で OpenXCAP 用の init.d スクリプトを作成しようとしています。
私のスクリプトはOpenXCAP サービスを開始および停止できますが、ステータスコマンド (サービス openxcap ステータス)に対して次のエラーを返します: openxcap dead but subsys locked
問題が init.d スクリプトにあるのか、それとも openxcap サービス自体にあるのか、誰かが教えてくれるでしょうか? openxcap には「give-status」機能がありませんか?
#!/bin/bash
#
# Startup script for OpenXCAP
#
# processname: openxcap
# pidfile: /var/run/openxcap/openxcap.pid
# chkconfig: - 85 15
# description: start, stop, restart OpenXCAP server
#
### BEGIN INIT INFO
# Provides: openxcap
# Required-Start: $local_fs $network
# Should-Start: mysqld
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
APP_NAME=openxcap
APP_HOME=/usr/local/src/openxcap-2.0.1
PID_PATH=/var/run/openxcap/openxcap.pid
RETVAL=0
[ -f /etc/sysconfig/$APP_NAME ] && . /etc/sysconfig/$APP_NAME
start()
{
echo -n $"Starting $APP_NAME: "
daemon $APP_HOME/$APP_NAME $OPTIONS 2>/dev/null | tail -1
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/$APP_NAME
}
stop()
{
echo -n $"Stopping $APP_NAME: "
killproc -p $PID_PATH
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/$APP_NAME $PID_PATH
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $APP_NAME
RETVAL=$?
;;
restart|reload)
stop
start
;;
*)
echo $"Usage: $APP_NAME {start|stop|reload|restart|status|help}"
exit 1
esac
exit $RETVAL