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

我有一个systemd服务,在启动时启动一个Node应用程序。 Node应用程序使用child_process.spawnSync启动一个使用sed编辑/etc/wpa_supplicant/wpa_cli-actions.sh的shell脚本。

如果我从命令行手动启动Node应用程序,但是在由systemd启动应用程序时没有正确编辑wpa_cli-actions.sh文件,则该文件会被正确编辑。 我的系统服务文件是基于另一个启动类似的服务,所以我不知道我在做什么错了。 我在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 

尝试以下方法:如果不指定UserGroup ,则默认启用root,将整个< path>replace为节点的path,可以findwhich 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