![检查 shell 脚本的状态](https://linux22.com/image/1246107/%E6%A3%80%E6%9F%A5%20shell%20%E8%84%9A%E6%9C%AC%E7%9A%84%E7%8A%B6%E6%80%81.png)
我正在运行 CentOS 5.5,并创建了一个 init 脚本。脚本的开头包含:
# Source function library.
if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
fi
起始位工作正常,但我遇到了状态和停止部分的问题:
status)
echo -n "Status of script: "
status "/bin/sh /path/to/script.sh"
RETVAL=$?
echo
;;
在 PS AUX 中,命令显示为“/bin/sh /path/to/script.sh”,我可以看到 PID。但是当我运行:
./my_init_script status
它说脚本没有运行。我应该使用 /bin/sh 位,还是只使用完整脚本路径,还是只使用脚本文件名?
初始化脚本的停止部分使用“killproc”。同样,我应该使用什么命令才能成功终止所有出现的脚本?
答案1
如果和Ubuntu上的相应功能类似,则应省略“/bin/sh”部分。
status "$DAEMON"
你可能会想要使用类似如下的东西:
killproc -p "$PIDFILE" "$DAEMON"
在脚本顶部附近定义这些变量:
DAEMON="/path/to/yourscriptname.sh"
PIDFILE="/var/run/yourscriptname/yourscriptname.pid"
当然,您需要确保它/var/run/yourscriptname
存在。
使用现有脚本/etc/init.d
作为您的脚本的模型。