ルートアクセスなしでスーパーバイザを実行する

ルートアクセスなしでスーパーバイザを実行する

こんにちは、私はスクリプトが初めてです。たくさん検索しましたが、見つかったのはフルアクセス権を持つスクリプトだけでした。 / 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あなたのexample()スクリプトは、それを使用して他の(デーモンではない)プログラムをデーモン化するために使用するいくつかのプログラムから得られたようですが、daemonそのスクリプトはありません。

私はそれをインストールしておらdaemonず(Ubuntu 12.04)必要ありませんsupervisord。あなたは--pidfile=FILEそれ自体で直接使用することができ、supervisordそれは自分自身を保護します特に指示がない限り

書き込みが可能であることを確認する/var/run/supervisord.pidか、アクセス可能な別の場所を指定する必要があります。

関連情報