Node.js脚本无法以systemctl启动

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

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

  1. [Unit]
  2. Description=laporan
  3.  
  4. [Service]
  5. ExecStart=/var/www/laporan/nodeserver/server.js
  6. Restart=always
  7. User=nobody
  8. Group=root
  9. Environment=PATH=/usr/bin:/usr/local/bin
  10. Environment=NODE_ENV=production
  11. WorkingDirectory=/var/www/laporan/nodeserver
  12.  
  13. [Install]
  14. WantedBy=multi-user.target

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

  1. laporan.service - laporan
  2. Loaded: loaded (/etc/systemd/system/laporan.service; enabled)
  3. Active: Failed (Result: start-limit) since Mon 2016-09-12 09:15:06 WITA; 11min ago
  4. Process: 121690 ExecStart=/var/www/laporan/nodeserver/server.js (code=exited,status=203/EXEC)
  5. Main PID: 121690 (code=exited,status=203/EXEC)
  6.  
  7. Sep 12 09:15:05 kominfomdc systemd[1]: Unit laporan.service entered Failed state.
  8. Sep 12 09:15:06 kominfomdc systemd[1]: laporan.service start request repeated too quickly,refusing to start.
  9. Sep 12 09:15:06 kominfomdc systemd[1]: Failed to start laporan.
  10. Sep 12 09:15:06 kominfomdc systemd[1]: Unit laporan.service entered Failed state.

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

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

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

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

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

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

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