如何在启动时启动 X11 程序并让其在 X 会话关闭时执行自定义脚本?

如何在启动时启动 X11 程序并让其在 X 会话关闭时执行自定义脚本?

我需要在每个用户会话结束时运行一个脚本,并且似乎是最好的方法。我没有编写 X11 程序的经验,那么我该如何做呢?

答案1

答案取决于使用哪个显示管理器(如果有)来启动 X。例如,如果 Gnome 桌面环境启动,则很可能是 Gnome 显示管理器启动了 X。如果是 KDE,则很可能是 KDE 显示管理器启动了它。

一旦我知道正在使用哪个显示管理器,我就会查阅该特定显示管理器的文档,看看它是否提到了执行所需操作的方法。如果做不到这一点,我会按照您链接中描述的方式继续操作——但这​​需要知道正在使用哪个“启动系统”。例如,Ubuntu 和 Red Hat 使用 Upstart;Arch Linux 和 Fedora 使用 systemd;Debian(我认为)使用 SysV init。

顺便说一句,最简单的解决方案是修改您的系统,使其启动到文本模式,从而使用户养成使用 startx 启动 X 的习惯。我不知道该解决方案是否可接受,但这种做法在 2000 年代中期(我上次运行 Linux 时)及更早的时候相当普遍。然后,您只需在 ~/.xinitrc 的末尾调用您的脚本即可。其实,它比这稍微复杂一些:该文件的最后一行通常是这样的形式,exec gnome-session其中gnome-session可能存在任何程序。您需要将其更改exec gnome-sessiongnome-session(换句话说,删除exec),然后在其后添加调用脚本的行。

相关内容