Node.js脚本无法以systemctl启动

前端之家收集整理的这篇文章主要介绍了Node.js脚本无法以systemctl启动前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要使用systemctl从远程计算机自动运行node.js脚本.

我已经创建了一个.service文件并将其放入/ etc / systemd / system /.这是.service文件

[Unit]
Description=laporan

[Service]
ExecStart=/var/www/laporan/nodeserver/server.js
Restart=always
User=nobody
Group=root
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/laporan/nodeserver

[Install]
WantedBy=multi-user.target

但每次我尝试启动服务时,它都会返回如下错误(systemctl status laporan的输出):

● laporan.service - laporan
   Loaded: loaded (/etc/systemd/system/laporan.service; enabled)
   Active: Failed (Result: start-limit) since Mon 2016-09-12 09:15:06 WITA; 11min ago
  Process: 121690 ExecStart=/var/www/laporan/nodeserver/server.js (code=exited,status=203/EXEC)
 Main PID: 121690 (code=exited,status=203/EXEC)

Sep 12 09:15:05 kominfomdc systemd[1]: Unit laporan.service entered Failed state.
Sep 12 09:15:06 kominfomdc systemd[1]: laporan.service start request repeated too quickly,refusing to start.
Sep 12 09:15:06 kominfomdc systemd[1]: Failed to start laporan.
Sep 12 09:15:06 kominfomdc systemd[1]: Unit laporan.service entered Failed state.

这个错误究竟是什么?我错过了什么吗?

解决方法

我不认为你是如何启动节点应用程序的.您只需在此处指定JavaScript文件
ExecStart=/var/www/laporan/nodeserver/server.js

如果节点在路径中,您还需要指定节点可执行文件,如下所示.

ExecStart= node /var/www/laporan/nodeserver/server.js

但是,正如您所注意到的,您必须输入可执行文件的完整路径:

ExecStart=/usr/local/bin/node /var/www/laporan/nodeserver/server.js

猜你在找的Node.js相关文章