systemd 終了 create-react-app

systemd 終了 create-react-app

ノードアプリケーション(具体的にはcreate-react-appを使用して構築されたReactアプリケーション)を実行するためにsystemdサービスを使用しようとしています。frontend.service/etc/systemd/system/少なくとも)次の内容を含むファイルがあります。

[Unit]
Description=React Web Application

[Service]
ExecStart=/usr/local/bin/npm start --prefix=<path to app>

[Install]
WantedBy=multi-user.target

サービスを開始した後、ブラウザにnginxbad gatewayエラーが表示され、そのps aux | grep nodeプロセスは表示されません。journalctl -u frontend「React Webアプリケーションの起動」や最後に「開発サーバーの起動...」などの成功したステップの出力を報告します。ただし、systemctl status frontendレポートサービスがロードされましたが、非アクティブ/非アクティブ状態(編集:またはアクティブ/終了)です。

.serviceファイル、特に、およびType=forkingRemainAfterExit=trueいくつか調整してみましたKillMode=process。しかし、問題は残っています。どうしたの?この問題をどのように解決しますか?

npm startシェルから直接アプリケーションを実行すると正常に動作します。さらに、他の(ノードではない)Webサーバーも同様のシステムスクリプトでうまく機能します。

これはsystemctlステータス出力です:

wm-frontend.service - React Web Application
   Loaded: loaded (/etc/systemd/system/wm-frontend.service; enabled; vendor preset: enabled)
   Active: active (exited) since Mon 2020-08-10 14:40:59 UTC; 32min ago
  Process: 4033 ExecStart=/usr/local/bin/npm start --prefix=/home/mw/wm-ax/frontend/blog --scripts-prepend-node-path (code=exited, status=0/SUCCESS)
 Main PID: 4033 (code=exited, status=0/SUCCESS)

Aug 10 14:40:59 localhost systemd[1]: Started React Web Application.
Aug 10 14:41:00 localhost npm[4033]: > [email protected] start /home/mw/wm-ax/frontend/blog
Aug 10 14:41:00 localhost npm[4033]: > react-scripts start
Aug 10 14:41:04 localhost npm[4033]: ℹ 「wds」: Project is running at http://0.0.0.0:3000/
Aug 10 14:41:04 localhost npm[4033]: ℹ 「wds」: webpack output is served from
Aug 10 14:41:04 localhost npm[4033]: ℹ 「wds」: Content not from webpack is served from /home/mw/wm-ax/frontend/blog/public
Aug 10 14:41:04 localhost npm[4033]: ℹ 「wds」: 404s will fallback to /
Aug 10 14:41:04 localhost npm[4033]: Starting the development server...

ベストアンサー1

で述べたようにこの回答、2020年2月の基準start.jsプロセスは次のとおりです。退会要件の終わりに達するとstdin。プロセスが非対話型(システムサービスなど)で実行されるとstdinすぐに終了するため、上記のようにスクリプトは終了します。

おすすめ記事