GNU/Linux >> Linux の 問題 >  >> Linux

Node.js スクリプトが systemctl で開始できませんでした

それがノードアプリの起動方法だとは思いません。ここで JavaScript ファイルを指定しているだけです:

ExecStart=/var/www/laporan/nodeserver/server.js

ノードがパスにある場合は、次のようにノード実行可能ファイルも指定する必要があります。

ExecStart= node /var/www/laporan/nodeserver/server.js

ノードが実行可能パスにない場合は、それを指定する必要があります:

ExecStart=/usr/local/bin/node /var/www/laporan/nodeserver/server.js

ノードを配置しているエラーを明確にするために 実行可能パスが間違っています。使用できる正しいパスを取得するには

$ which node // /usr/bin/node

私の場合は違います /usr/bin/node as path so in you ExecStart コマンドラインからノードパスをコピー

ExecStart=/usr/bin/node /var/www/laporan/nodeserver/server.js

Linux
  1. パスに依存しないShebangs?

  2. 「でスクリプトを実行します。 」と「ソース」で?

  3. ソースシェルスクリプトへのパスを決定しますか?

  1. Systemdを使用した非グラフィカルブート?

  2. ユーザーとして引数を使用してスクリプトを実行しますか?

  3. タイムゾーンで開始時間を処理しますか?

  1. 起動中にSystemctlサービスがタイムアウトしましたか?

  2. 変数でディレクトリを変更するシェルスクリプト

  3. パスに bash スクリプトを追加する