微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/nodejs/241054.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐