将javascript文件作为systemd服务运行时无法打开文本文件

时间:2018-02-13 00:14:16

标签: javascript node.js systemd

我在启动时使用 systemd 在我的 raspberry pi 上自动运行 javascript 文件强>服务。

我松散地跟着this guide做了以上事情。

当我使用以下命令手动运行我的javascript文件时:Node Cloversale.js

它运行正常,并按预期从我的文件中读取。

但是,当它作为服务运行时,我会收到以下错误:

Feb 12 17:48:19 sensohub systemd[1]: Started Clover Service.
Feb 12 17:48:24 sensohub node[8640]: 2018-02-12 17:48:24.028 INFO  ENOENT: no such file or directory, open 'token.txt'
Feb 12 17:48:24 sensohub node[8640]: Error: ENOENT: no such file or directory, open 'token.txt'
Feb 12 17:48:24 sensohub node[8640]: at Error (native)
Feb 12 17:48:24 sensohub node[8640]: 2018-02-12 17:48:24.068 INFO  ENOENT: no such file or directory, open 'endpoint.txt'
Feb 12 17:48:24 sensohub node[8640]: Error: ENOENT: no such file or directory, open 'endpoint.txt'
Feb 12 17:48:24 sensohub node[8640]: at Error (native)
Feb 12 17:48:24 sensohub node[8640]: 2018-02-12 17:48:24.117 INFO  Connected to OCR-Pi Server

我尝试在我的服务文件中使用chmod 644,所以我不认为它是权限问题,但这就是我读过的其他网站似乎表明的内容。

这是我的clover.services文件:

[Unit]
Description=Clover Service
After=multi-user.target

[Service]
Type=idle
ExecStart=/usr/bin/node /home/pi/OCR-Pi/NSR/cloversale.js 

[Install]
WantedBy=multi-user.target

1 个答案:

答案 0 :(得分:0)

发布后我发现了......显然我必须对Javascript文件 .service文件赋予读写权限。

因此输入chmod 644 cloversale.js修复了问题。