您好,我对编写脚本非常陌生,我搜索了很多,但我发现的只是具有完全访问权限的脚本。我无权访问 /etc。我在云中的主机上工作,但我的访问权限有限,这就是我所有尝试都失败的原因。到目前为止我有这个:
#!/bin/sh
prog="supervisord"
prefix="/usr/local/"
exec_prefix="${prefix}"
prog_bin="${exec_prefix}/bin/supervisord -c /home/user/supervisor/supervisord.conf"
PIDFILE="/var/run/$prog.pid"
start()
{
echo -n $"Starting $prog: "
daemon $prog_bin --pidfile $PIDFILE
[ -f $PIDFILE ] && success $"$prog startup" || failure $"$prog startup"
echo
}
stop()
{
echo -n $"Shutting down $prog: "
[ -f $PIDFILE ] && killproc $prog || success $"$prog shutdown"
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $prog
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
;;
esac
但我总是收到这个错误:
Starting supervisord: script.sh: 27: script.sh: daemon: not found
script.sh: 28: script.sh: failure: not found
请帮忙,我不知道发生了什么事......
答案1
看起来您的示例 ( init.d
) 脚本是从使用该程序来daemon
守护其他(非守护程序)程序的某个程序中获得的,而您缺少该程序。
我没有daemon
安装(Ubuntu 12.04),并且您不需要它supervisord
。您可以--pidfile=FILE
直接在其自身上使用supervisord
,它会自行守护除非另有指示。
您应该检查是否可以写入/var/run/supervisord.pid
,或以其他方式指定不同的、可访问的位置。