已经讨论过的类似问题这里关于将默认的 init 守护进程从 Upstart 更改为 Systemd,并将 foo.conf 转换为 foo.service,以便 Systemd 能够使用。
可以在网上找到的代码片段,允许信息亭电脑在 openbox-session 下直接启动到浏览器而无需登录:
#/etc/init/foo.conf
start on (filesystem and stopped udevtrigger)
stop on runlevel [06]
emits starting-x
respawn
exec sudo -u $USER startx /etc/X11/Xsession /opt/foo.sh --
和
#/opt/foo.sh
#!/bin/bash
xset -dpms
xset s off
openbox-session &
while true; do
firefox -P myProfile
done
我们知道
exec sudo -u $USER startx /etc/X11/Xsession /opt/foo.sh --
可以“翻译”成
[Service]
ExecStart=/bin/sh -ec "exec sudo -u $USER startx /etc/X11/Xsession /opt/foo.sh --"
并根据这,“respawn” 也位于服务部分下,因此它给我们:
[Service]
Restart=on-failure
ExecStart=/bin/sh -ec "exec sudo -u $USER startx /etc/X11/Xsession
但是如何处理“启动、停止和发出”这些事情呢?我们需要任何“需要/之后”指令吗?
在 Lubuntu 15.10 上测试。