Привет, я совсем новичок в написании скриптов, и я много искал, но все, что я нашел, это скрипты с полным доступом. У меня нет доступа к /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
или указать другое доступное место.