Node 애플리케이션(구체적으로 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
서비스를 시작한 후 브라우저에 nginx bad gateway
오류가 표시되고 ps aux | grep node
해당 프로세스가 표시되지 않습니다. journalctl -u frontend
"React 웹 애플리케이션 시작" 및 마지막으로 "개발 서버 시작..."과 같은 성공적인 단계의 출력을 보고합니다 . 그러나 systemctl status frontend
보고 서비스가 로드되었지만 비활성/비활성 상태(편집: 또는 활성/종료)입니다.
.service
파일, 특히 Type=forking
, RemainAfterExit=true
및 를 일부 조정 해 보았습니다 KillMode=process
. 그러나 문제는 남아 있습니다. 무슨 일이야? 이 문제를 어떻게 해결하나요?
npm start
셸에서 직접 응용 프로그램을 실행하면 제대로 작동합니다. 또한 다른 (노드가 아닌) 웹 서버는 유사한 시스템 스크립트에서 잘 작동합니다.
이것은 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...