我尝试使用命令systemctl enable photogrid.service
&运行systemd ubuntu 16中的systemctl start photogrid.service
nodejs app本身可以按预期运行。该服务旨在确保应用程序在应用程序崩溃或服务器重新启动时自动启动。
该服务显然没有启动。所以我输入systemctl status photogrid.service
来查看发生的事情,下面是我从终端获得的信息。
● photogrid.service - Photogrid
Loaded: loaded (/lib/systemd/system/photogrid.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Wed 2016-11-09 04:35:36 UTC; 7s ago
Process: 27523 ExecStart=/usr/local/bin/node /home/ubuntu/photogrid/app.js (code=exited, status=203/EXEC)
Main PID: 27523 (code=exited, status=203/EXEC)
Nov 09 04:35:36 ip-172-31-34-151 systemd[1]: photogrid.service: Main process exited, code=exited, status=203/EXEC
Nov 09 04:35:36 ip-172-31-34-151 systemd[1]: photogrid.service: Unit entered failed state.
Nov 09 04:35:36 ip-172-31-34-151 systemd[1]: photogrid.service: Failed with result 'exit-code'.
这是我在路径/lib/systemd/system/photogrid.service
下为服务编写的脚本[Unit]
Description=Photogrid
[Service]
Type=simple
Restart=always
RestartSec=10
Environment=NODE_ENV=production
ExecStart=/usr/local/bin/node /home/ubuntu/photogrid/app.js
[Install]
WantedBy=multi-user.target
答案 0 :(得分:0)
基本上在ExecStart
下确保指向正确的nodejs可执行文件。对于我的情况,它是在一个不同的文件夹而不是/usr/local/bin/node
,以检查您的节点可执行文件的位置。 (假设您确认已下载并在Linux中正确安装),请使用命令which node
为您提供路径指示。