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

Ror*_*ain 6 lubuntu google-chrome systemd 16.04

这与this question非常相似,但没有收到任何答案。

我正在从 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 --
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

使用 systemd 实现相同目标的最佳方法是什么?

Cub*_*Dev 3

您可以保留 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
Run Code Online (Sandbox Code Playgroud)

保存此文件后,运行以下命令以在启动时启用该服务:

systemctl enable chromestart.service
Run Code Online (Sandbox Code Playgroud)

还建议设置正确的权限:

sudo chown root:root /etc/systemd/system/chromestart.service
sudo chmod 755 /etc/systemd/system/chromestart.service
Run Code Online (Sandbox Code Playgroud)

现在重新启动。