[英]Node.js script failed to start with 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
如果 node 不在可執行路徑上,則必須提供它:
ExecStart=/usr/local/bin/node /var/www/laporan/nodeserver/server.js
為了清楚說明您放置節點可執行路徑錯誤的錯誤。 要獲得正確的路徑,您可以使用
$ which node // /usr/bin/node
在我的情況下它不同我得到/usr/bin/node作為路徑所以在你ExecStart 從命令行復制節點路徑
ExecStart=/usr/bin/node /var/www/laporan/nodeserver/server.js
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.