这非常类似于这个问题但没有收到任何答复。
我正在从 Lubuntu 14.04 迁移到 16.04,并且有一个简单的 upstart 脚本需要转换为 systemd。它在 OpenBox 中启动 Chrome,其来源如下:将现有的 Ubuntu 桌面转换为 Chrome 信息亭
它创建一个 upstart 脚本,使用 kiosk.sh 启动 X11 会话:
start on (filesystem and stopped udevtrigger)
stop on runlevel [06]
emits starting-x
respawn
exec sudo -u $USER startx /etc/X11/Xsession /opt/kiosk.sh --
然后 kiosk.sh 执行以下操作来启动 openbox 和 chrome:
#!/bin/bash
xset -dpms
xset s off
openbox-session &
while true; do
rm -rf ~/.{config,cache}/google-chrome/
google-chrome --kiosk --no-first-run 'http://thepcspy.com'
done
使用 systemd 实现相同目的的最佳方法是什么?
答案1
您可以保留 kiosk.sh。Systemd 能够执行 shell 脚本。在“/etc/systemd/system/”内创建一个名为“chromestart.service”的文件并输入以下内容:
[Unit]
Description=Start of Google Chrome on startup
[Service]
Type=simple
ExecStart=startx /etc/X11/Xsession /opt/kiosk.sh
User=ENTER USERNAME HERE
Group=ENTER GROUPNAME HERE (usually the same as username)
[Install]
WantedBy=multi-user.target
保存此文件后,运行此命令以在启动时启用该服务:
systemctl enable chromestart.service
还建议设置正确的权限:
sudo chown root:root /etc/systemd/system/chromestart.service
sudo chmod 755 /etc/systemd/system/chromestart.service
现在重新启动。