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

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...