所以,我开始分解我的系统初始化并为我登录后想要加载的东西创建一些服务文件。这是常见的东西,比如 polybar、dunst 和其他东西。事情确实有效,但我的 pywal 设置存在一些问题。我已经将依赖项分离到一个单独的 .target 中,称为
主题.target
[Unit]
Description = Theme dependencies
BindsTo = xsession.target
Wants = pywal.service
Wants = i3.service
Wants = polybar.service
Wants = dunst.service
我想要实现的是仅在 pywal.service 完全运行并完成启动脚本的执行后才加载 i3(以及列表的其余部分)。
在 .bin/pywal 我确实睡了 10 秒
pywal.服务
[Unit]
Description = Run pywal service responsible for color schemes
PartOf = theme.target
[Service]
ExecStart = %h/.bin/pywal
[Install]
WantedBy = theme.target
i3.服务
[Unit]
Description = A tiling window manager
PartOf = theme.target
After = pywal.service
Requires = pywal.service
[Service]
ExecStart = /usr/bin/i3-msg restart
[Install]
WantedBy = theme.target
我可能在这里对“成功运行”的实际含义感到困惑,但是我注意到 i3 服务在我运行后立即重新启动
systemctl --user restart theme.target
然后我只是观察所有 3 个服务/目标的状态,并看到 i3 与 pywal.service 同时重新启动。
所以基本上我在这里错过了什么,为什么 i3 在 pywal 后 10 秒不重启?
编辑:根据评论修复了一个句子以在这种情况下更有意义