我已经编写了这个服务单元来运行systemd:
[Unit]
Description=NodeJS, Express server
[Service]
Type=simple
ExecStart=/usr/bin/node /home/sm/test.js
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
test.js 相当于一个ls
,这样写:
const fs = require('fs')
fs.readdir('.', (e,d)=> e ?console.log(e): console.log(d))
运行node test.js
或什sudo node test.js
至或node /<pathTo>/test.js
从 CLI 输出脚本运行的目录。
如果这是使用systemctl启动的,它会记录根目录。
其背后的逻辑是什么?为什么日志会改变?
因为 systemd 没有默认的工作目录。因此它就这样使用
/
。WorkingDirectory=
在您的部分中使用[Service]
以设置工作目录。