NODE APP: скрипт запуска Systemd не работает? - PullRequest
0 голосов
/ 01 ноября 2018

Попытка создать сценарий запуска для моего приложения nodejs, которое работает на порту 3000.

Проблема : Сценарий node-app.server не работает, и я думаю, что это из-за неправильного пути ExecStart. При переходе на сервер IP в Chrome ничего не показывает.

Приложение узла было создано с помощью генератора npm, и я обычно использую npm start для запуска приложения. Я добавил путь к bin / wwww, здесь:

[Unit]
Description=tweetMonster twtiter server - making your environment variables rad
Documentation=https://example.com
After=network.target

[Service]
Environment=NODE_PORT=3000
Type=simple
User=ubuntu
ExecStart=/home/ubuntu/twitter-server/bin/www.js
Restart=on-failure

[Install]
WantedBy=multi-user.target

Мое приложение работает на Ubuntu 18 со /home/ubuntu/twitter-server. А если сделать ls:

/twitter-server$ ls
app.js  node_modules       package.json  routes
bin     package-lock.json  public        views

Пожалуйста, помогите!

ТЕРМИНАЛ ОШИБКИ:

Nov 01 05:40:25 ip-172-31-22-207 systemd[1]: node-app.service: Main process exited, code=exited, status=203/EXEC
Nov 01 05:40:25 ip-172-31-22-207 systemd[1]: node-app.service: Failed with result 'exit-code'.
Nov 01 05:40:26 ip-172-31-22-207 systemd[1]: node-app.service: Service hold-off time over, scheduling restart.
Nov 01 05:40:26 ip-172-31-22-207 systemd[1]: node-app.service: Scheduled restart job, restart counter is at 5.
Nov 01 05:40:26 ip-172-31-22-207 systemd[1]: Stopped hello_env.js - making your environment variables rad.
Nov 01 05:40:26 ip-172-31-22-207 systemd[1]: node-app.service: Start request repeated too quickly.
Nov 01 05:40:26 ip-172-31-22-207 systemd[1]: node-app.service: Failed with result 'exit-code'.
Nov 01 05:40:26 ip-172-31-22-207 systemd[1]: Failed to start hello_env.js - making your environment variables rad.
Nov 01 06:20:11 ip-172-31-22-207 systemd[1]: /etc/systemd/system/node-app.service:10: Executable path is not absolute: "node /home/ubuntu/twitter-server/bin/www.js"
Nov 01 06:24:35 ip-172-31-22-207 systemd[1]: /etc/systemd/system/node-app.service:10: Executable path is not absolute: "node /home/ubuntu/twitter-server/bin/www.js"
root@ip-172-31-22-207:/etc/systemd/system# 

1 Ответ

0 голосов
/ 01 ноября 2018

В настройках вашей службы есть 2 проблемы.

Сначала оберните значение Environment в двойные кавычки:

Environment="NODE_PORT=3000"

Во-вторых,

Вам нужно использовать node для запуска сценария ExecStart. /home/ubuntu/twitter-server/bin/www.js сама по себе не является командой.

У

ExecStart=/bin/bash -c '$$(which node) /home/ubuntu/twitter-server/bin/www.js'
...