【发布时间】:2018-02-26 05:36:14
【问题描述】:
我正在尝试通过 systemd 启动名为 pigpiod.service 的服务。它使用三个命令调用脚本。第二个被遗漏了。这是为什么呢?
/etc/systemd/system/pigpiod.service:
[Unit]
Description=Starts pigpiod
Before=touchscreen.service
[Service]
ExecStart=/home/sysop/pigpiod.sh
[Install]
WantedBy=multi-user.target
/home/sysop/pigpiod.sh:
#!/bin/sh
touch /home/sysop/before_pigpiod
/usr/bin/pigpiod
touch /home/sysop/after_pigpiod
- 重启机器时,在
/home/sysop/中创建了两个文件,但pigpiod没有启动。 - 通过
sudo systemctl start pigpiod手动启动服务时,也会发生同样的情况。 - 手动运行
sudo /home/sysop/pigpiod.sh时pigpiod实际上正在启动!
这是sudo systemctl status pigpiod -l 启动后的输出:
● pigpiod.service - Starts pigpiod
Loaded: loaded (/etc/systemd/system/pigpiod.service; enabled)
Active: inactive (dead) since Sat 2017-09-16 20:02:03 UTC; 2min 29s ago
Process: 440 ExecStart=/home/sysop/pigpiod.sh (code=exited, status=0/SUCCESS)
Main PID: 440 (code=exited, status=0/SUCCESS)
Sep 16 20:02:02 kivypie systemd[1]: Starting Starts pigpiod...
Sep 16 20:02:02 kivypie systemd[1]: Started Starts pigpiod.
为什么systemd会跳过/usr/bin/pigpiod的执行,而以root身份手动运行脚本却没有?
我的系统:Raspberry Pi Model 3B,Raspbian GNU/Linux 8 (jessie)
【问题讨论】:
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。
标签: linux raspberry-pi boot systemd systemctl