将 Upstart 迁移到 Ubuntu/Lubuntu 上的 SystemD 以自动启动 Chrome

将 Upstart 迁移到 Ubuntu/Lubuntu 上的 SystemD 以自动启动 Chrome

这非常类似于这个问题但没有收到任何答复。

我正在从 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

现在重新启动。

相关内容