起動時にプログラムを起動する(Debianサーバー)

起動時にプログラムを起動する(Debianサーバー)

フォルダパス:root/CumulusServer

注文の実行:./CumulusServer --daemon [--pidfile=/var/run/CumulusServer.pid]

修正する方法を理解しようとしてかなりの時間を費やしましたinit.d。この問題の解決にご協力いただきありがとうございます。


間違い:

[FAILED] cd /root/CumulusServer | ./CumulusServer --daemon [--pidfile=/var/run/CumulusServer.pid] to /etc/rc.local

[FAILED] /root/CumulusServer | ./CumulusServer --daemon [--pidfile=/var/run/CumulusServer.pid] to /etc/rc.local

[FAILED] cd /root/CumulusServer && ./CumulusServer --daemon

答え1

コマンドが起動時に最後に実行された場合は、そのコマンドを/etc/rc.local

rc.localこのようなステートメントを含めるのが一般的なので、exit 0実際に実行されるようにコマンドを前に追加する必要があります。

/etc/init.dより複雑なタスクを実行し、このデーモンを起動した後に手動で停止/(再)起動できるようにするには、最初に試したように、このコマンドを独自のファイルに追加する必要があります。見てこの Debian Wiki 記事始めるのに役立ちます。

答え2

cd|およびを無視します&&。実行したいCumulusServerファイルの絶対(フル)パスを使用できます。オプションから角かっこを削除することも[ ]できます--pidfile。プログラムのコマンドライン構文の例が表示されている場合、括弧はコマンドのオプション部分を表しますが、実際には使用されません。

これにより、出口0の上のrc.localにコマンドが挿入されます。

$ sudo sed -i '/^exit/ i\/root/CumulusServer/CumulusServer --daemon --pidfile=/var/run/CumulusServer.pid\' /etc/rc.local

関連情報