从systemd节点应用程序生成的Shell脚本不编辑等文件

时间:2017-05-05 01:34:07

标签: node.js linux systemd intel-edison

我有一个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

1 个答案:

答案 0 :(得分:2)

尝试以下操作,如果您未指定UserGroup,则默认启用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