ノードアプリケーション(具体的には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=forking
をRemainAfterExit=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...