如何在 Arch Linux 启动时自动启动服务?

如何在 Arch Linux 启动时自动启动服务?

我做了一些研究试图弄清楚这一点,结果发现只是为了启动一项服务,各种选项看起来都非常复杂,而这正是我需要做的。

基本上,我尝试xbindkeys在桌面环境启动时(或用户登录时)启动。

有哪些简单的选项可以实现此目的?

答案1

小心您尝试启动的服务类型。您正确地确定了应该xbindkeys与桌面环境一起启动,因为它需要访问您的 X11 显示器,而“启动时启动”服务则无法访问。很多人都忘记了这一点。


在大多数桌面环境中,创造 ~/.config/autostart/xbindkeys.desktop根据 XDG 自动启动规范

[Desktop Entry]
Type=Application
Exec=xbindkeys

通常这可以通过cinnamon-session-properties或类似方式来完成。


另一种方法是将命令放在~/.xprofile脚本,由大多数显示管理器(GDM、KDM、LXDM、LightDM)运行:

xbindkeys &

如果您只使用startx,请在您的 中将同一行放在~/.xinitrc启动桌面环境的部分之前。这同样适用于调用 的显示管理器startx,例如 SLiM。

一些服务(包括 xbindkeys)会自行“分离”,因此&并非严格要求。但是,这不会造成任何损害,并且可能会使启动快点因为 bash 甚至在启动进程之前就分离了。另一方面,有些情况下这样做会很麻烦 — 即当需要知道服务何时完全初始化时。


另一方面,系统范围的服务应通过创建/etc/systemd/system/<name>.service单元文件作为 systemd 服务启动。它们启动较早,无法访问任何 X11 显示(并且通常在显示管理器启动之前启动)。

答案2

xbindkeys 不是一项服务,它需要使用系统控制

然而,绑定键就像 Arch 中的任何东西一样,它有一个非常好的 wiki 页面,这里,其中除其他内容外,规定如下:

完成密钥配置后,编辑 ~/.xinitrc 并放置

 xbindkeys

在启动窗口管理器或 DE 的行之前。

你真的应该开始阅读 Wiki,它确实写得很好,甚至当我必须在其他非 Arch Linux 系统中添加/修改配置时,我也会阅读它。

答案3

在我这边,我使用 Cinnamon 作为桌面环境。所以我只需/usr/bin/xbindkeys在 Cinnamon 设置面板 → 启动应用程序中添加即可。
这样,xbindkeys当我的桌面环境启动时,它就会启动。
如果您不使用 Cinnamon,我相信您将能够将同样的东西应用到您的桌面环境中。

相关内容