web-dev-qa-db-ja.com

私の起動スクリプトは実行中と言っていますが、実際には実行されていません-Ubuntu 10.04 LTS

これはUbuntu10.04LTSにあります

そのため、手動で実行するとうまく機能するgulpスクリプト(Nodeを介して実行)があります。実際にはディレクトリで「監視」を実行するため、ファイルが変更された場合は自動的にコマンドが実行されます。私が最初に抱えていた問題は、バグのある変更を保存すると、「ウォッチ」がクラッシュすることでした。

Upstartを介してgulpスクリプトを実行し、クラッシュした場合はリスポーンすることで、これを修正できると思いました。しかし、「startgulpwatch」または「Sudostartgulpwatch」を実行すると、起動してpidが表示されますが、実際には起動してクラッシュし、「watch」を維持しません。これは、次の行が表示されるsyslogで確認されます。

Mar 24 14:19:19 ubuntu init: gulpwatch main process (2653) terminated with status 2
2072 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2073 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2654) terminated with status 2
2074 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2075 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2655) terminated with status 2
2076 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2077 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2656) terminated with status 2
2078 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2079 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2657) terminated with status 2
2080 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2081 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2658) terminated with status 2

これが私のupstartファイルです

/etc/init/gulpwatch.conf
   start on runlevel [2345]
    stop on runlevel [016]
    respawn
    respawn limit 5 10

    exec "cd /opt/lib/vendor/node/;/usr/bin/gulp --gulpfile gulpfile.js"

上記の2つのコマンド「cd/opt/lib/vendor/node /」と「/ usr/bin/gulp --gulpfile gulpfile.js」を実行すると、完全に機能します(ただし、クラッシュした場合はもちろん、再スパンされません。監視ファイルの構文エラーに)。

私のupstartスクリプトが機能しない理由は何ですか?

2
asolberg

私はそれを考え出した。 chdirを実行する必要がありました/opt/lib/vendor/node/次に、その部分をexecステートメントから取り出します。どうやらexecは古いシェルコマンドを実行せず、スクリプト(および引数)のみを実行します

2
asolberg