Hallo, ich bin ein echter Neuling im Skripteschreiben und habe viel gesucht, aber alles, was ich gefunden habe, sind Skripte mit Vollzugriff. Ich habe keinen Zugriff auf /etc. Ich arbeite auf einem Host in der Cloud, habe aber nur eingeschränkten Zugriff, weshalb alle meine Versuche erfolglos waren. Bisher habe ich Folgendes:
#!/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
Aber ich erhalte immer diesen Fehler:
Starting supervisord: script.sh: 27: script.sh: daemon: not found
script.sh: 28: script.sh: failure: not found
Bitte helfen Sie, ich habe keine Ahnung, was los ist ...
Antwort1
Es sieht so aus, als hätten Sie Ihr Beispielskript ( init.d
) von etwas, das das Programm verwendet, daemon
um andere (Nicht-Daemon-)Programme zu daemonisieren, und Ihnen fehlt dieses Programm.
Ich habe es nicht daemon
installiert (Ubuntu 12.04) und du brauchst es auch nicht dafür supervisord
. Du kannst es --pidfile=FILE
direkt auf supervisord
sich selbst anwenden und es wird sich selbst als Daemon ausführensofern nicht anders angegeben.
Sie sollten prüfen, ob Sie an schreiben können /var/run/supervisord.pid
oder anderweitig einen anderen, zugänglichen Ort angeben können.