我有一个systemd服务,可以在启动时启动Node应用程序。 Node应用使用child_process.spawnSync
启动使用sed编辑/etc/wpa_supplicant/wpa_cli-actions.sh
的shell脚本。
如果我从命令行手动启动Node应用程序,则会正确编辑wpa_cli-actions.sh文件,但在systemd启动应用程序时未正确编辑。我的systemd服务文件基于另一个启动类似服务的文件,所以我不确定我做错了什么。我没有在journalctl输出中看到任何与此相关的错误。以下是我的服务文件。
[Unit]
Description=The Edison status and configuration service
After=mdns.service
[Service]
ExecStart=/bin/su root -c 'node /usr/lib/config-server/app.js'
Restart=always
RestartSec=10s
StandardOutput=journal
StandardError=journal
SyslogIdentifier=edison-config
PrivateTmp=no
Environment=NODE_ENV=production
User=root
Group=root
[Install]
WantedBy=default.target
答案 0 :(得分:2)
尝试以下操作,如果您未指定User
或Group
,则默认启用root,将整个< 路径替换为节点> ,并将路径改为节点,可以使用which node
找到它。
[Unit]
Description=The Edison status and configuration service
After=mdns.service
[Service]
ExecStart=<path to node> /usr/lib/config-server/app.js
WorkingDirectory=/usr/lib/config-server
Restart=always
RestartSec=10s
StandardOutput=journal
StandardError=journal
SyslogIdentifier=edison-config
PrivateTmp=no
Environment=NODE_ENV=production
[Install]
WantedBy=default.target