启动时打开网络浏览器

启动时打开网络浏览器

任务:在启动 Linux 时启动 Firefox (Ubuntu 18.04 LTS)

问题:我认为问题是我想启动一个GUI程序

我做错了什么以及如何解决问题?

Systemd 文件位于  ~/.config/systemd/user

使能够:systemctl --user enable firefox

我的单位档案:

Description=Start Firefox 
PartOf=graphical-session.target

[Service] 
ExecStart=/usr/bin/firefox
Type=oneshot 

[Install]
WantedBy=graphical-session.target```

答案1

有用 !

服务单位文件应放入~/.config/systemd/user.

由于它是每用户服务,因此您应该使用 sans sudo--user 选项来 操作它。systemctl例如:

启用:例如 systemctl --user enable firefox

这也适用于启用和禁用它。

~/.config/systemd/user/firefox.service:

systemd 人员希望使每用户服务看起来像每登录会话服务的一部分是整个图形会话机制,您的服务单元必须将其与设置合并:

[Unit] PartOf=graphical-session.target

如果 graphical-session.target 在图形登录后未激活(您可能拥有旧的或稳定的系统)。

登录时没有运行服务的默认挂钩,因此您必须自己触发它。我从我的档案中做这件事~/.xsession

systemctl --user import-environment PATH DBUS_SESSION_BUS_ADDRESS systemctl --no-block --user start xsession.target 第一行将一些环境变量导入到 systemd 用户会话中,第二行启动目标。我的xsession.target文件:

[Unit] Description=Xsession running BindsTo=graphical-session.target

我的单位档案:

Description=Start Firefox 
PartOf=graphical-session.target

[Service] 
ExecStart=/usr/bin/firefox Type=simple
Restart=on-failure 

[Install] 
WantedBy=xsession.target```

答案2

  1. 任何日志systemctl status firefox.service(假设 firefox.service 是名称)可能有助于调试相同的问题。
  2. 声明为预期会采取某些操作并立即退出的服务oneshot(因此,它们不是真正的服务,不会保留正在运行的进程)。这些类型的服务的常见模式是通过设置和拆卸操作来定义。

相关内容