检查 shell 脚本的状态

检查 shell 脚本的状态

我正在运行 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作为您的脚本的模型。

相关内容