关于什么进程是守护进程,https://unix.stackexchange.com/a/175396/674说
当您的系统运行图形环境时,就会出现一个大问题。由于 GUI 程序(即 Chromium)未附加到终端,因此它们也会出现在输出中。
...基本上,我们希望在没有控制终端的情况下显示所有程序,但不显示GUI程序。幸运的是,有一个程序可以列出 GUI 进程:
xlsclients
没有控制终端的 X 客户端可以作为守护进程吗?
在没有控制终端的情况下运行 GUI 程序的进程可以是守护进程吗?
该链接似乎对这两个问题都说不。守护进程的哪些方面使得没有控制终端的 X 客户端(或运行 GUI 程序的进程)不是守护进程?这归结为守护进程的定义是什么。
注意:
X客户端和GUI程序是同一个概念吗?该链接似乎说是。但请注意X 客户端不一定有窗口,而在我看来,GUI程序进程必须至少有一个窗口。特别是,没有任何窗口的 X 客户端可以作为守护进程运行吗?
任何进程(X 客户端、GUI 程序和任何其他进程)都可以处于有或没有控制终端的进程会话中(例如,当从带有控制终端的 shell 启动 X 客户端或 GUI 程序时,以及从菜单启动它时)桌面环境)。守护进程的进程会话不能有控制终端,因此我正在考虑没有控制终端的情况。
谢谢。
答案1
我想说这主要是一个定义问题。规范(无控制终端)定义早于X(或者瓦就此而言)——至少几年——据我所知。因此定义不一定必须与扩展环境兼容。
如果您对守护进程的定义是“没有控制终端”,那么这就是它的本质,无论它是否是 X 客户端,也无论它是否具有活动的可见窗口(想象一下正在侦听热键的音频音量管理器)。
如果您决定采用更广泛的定义(例如,从维基百科入口):
作为后台进程运行的计算机程序,而不是在交互式用户的直接控制下,
那么这取决于这样的程序实际上做了什么 - 系统监视器(例如康基)将是具有只读 GUI 的守护进程的良好候选者。从我的角度来看,拥有一个控制终端并不一定会干扰如此广泛的定义(尽管我不认为这会是一个好主意TM)。
顺便说一句,即使是桌面环境最终也可能有一个控制终端(或 X 会话)——上次我检查startx
仍然可用,所以你可以很好地登录系统,从 shell 启动 X11 DE,并且至少它的一部分可能有一个控制终端(会话启动的终端),具体取决于实际的实现。