在沒有 root 存取權限的情況下執行supervisord

在沒有 root 存取權限的情況下執行supervisord

您好,我對編寫腳本非常陌生,我搜尋了很多,但我發現的只是具有完全訪問權限的腳本。我無權訪問 /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,或以其他方式指定不同的、可存取的位置。

相關內容