我有一个开始使用的流程sudo ./whatever
我想使它成为自动启动的服务。
已经创建了一个 .service 文件并将其放入,/etc/systemd/system
但它不会启动进程。我怀疑问题与 sudo 有关,但不知道如何解决。这是我遵循的脚本
[Unit]
Description=what
After=network.target
[Service]
User=w
Group=w
WorkingDirectory=/home/w/test
ExecStart=/home/w/test/whatever
KillMode=process
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=what
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
答案1
如果您需要以 root 身份运行脚本,请不要使用User=w
。Group=w
[Unit]
Description=what
After=network.target
[Service]
WorkingDirectory=/home/w/test
ExecStart=/home/w/test/whatever
KillMode=process
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=what
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
启用并启动它:
sudo systemctl enable yourservice
sudo systemctl start yourservice
修改脚本并添加:
echo "Starting my CustoM script" | logger
重启后检查是否已执行:
journalctl -b | grep CustoM
答案2
感谢大家的指点。结果发现是权限问题,必须更改文件夹和服务文件的所有权。每天都是上学日!