运行最新的 Arch Linux ARMv7 (RaspPi 3)。我创建了两个 systemd 服务单元。我想foo
先开始然后再开始bar
。foo
启动时启动,但bar
不启动。但是bar
将从 shell 提示符手动启动。这是单元文件的副本bar
:
[Unit]
Requires=foo.service
After=foo.service
[Service]
Type=simple
ExecStart=/usr/bin/setsid /usr/bin/bar >/dev/null 2>&1 < /dev/null
TimeoutSec=0
RemainAfterExit=Yes
[Install]
WantedBy=getty.target
但是,如果我在前面放置一个英镑符号,[Unit]
如下所示:
#[Unit]
然后bar
在启动时以正确的顺序启动(在 之后foo
)。
这种行为和评论[Unit]
似乎没有意义,也不符合我能找到的文档。所以我只是想知道为什么它会让设备在启动时启动?!
答案1
注释掉[Unit]
会导致Requires
和After
指令被忽略。删除这些指令并删除注释#
会产生相同的行为。
它在没有注释的情况下无法在启动时启动的原因#
一定是因为其他服务的要求存在问题。