Tim*_*Tim 7 linux process ubuntu signals logout
我试图了解当我们注销 Linux(特别是 Ubuntu)时会发生什么:
进程最初如何请求/通知注销进程执行注销(通过发送一些信号,或一些其他 IPC 方式)?注销过程运行的程序是什么?请求/通知进程通常运行什么程序?
注销进程会杀死哪些进程,哪些不会?(有一些方法可以使登录后启动的进程在注销后存活下来,他们如何设法做到这一点?使一个没有控制终端的进程似乎是一种方法,但大多数进程在下面的注销中被杀死示例没有控制终端)
注销进程如何杀死这些进程(通过发送一些信号或其他一些 IPC 方式)?
考虑三种情况:虚拟控制台和桌面环境以及 SSH。(前两个由操作系统提供,第三个不是,尽管都在用户空间中运行)
当我登录虚拟控制台时,我从登录 shell 获得以下祖先进程:
1 systemd
721 login
26284 bash
Run Code Online (Sandbox Code Playgroud)
注销后,进程721 login及以下消失。
在 Lubuntu 18.04 上,当我登录 lightdm 和 LXDE 并从桌面面板运行 lxterminal 并从 lxterminal 窗口中的以下命令获取祖先进程时:
$ ps -paus $$
systemd,1 --system --deserialize 19
`-lightdm,661
`-lightdm,27302 --session-child 13 24
`-lxsession,27309,testme -s Lubuntu -e LXDE
`-lxpanel,27399 --profile Lubuntu
`-lxterminal,27565
`-bash,27568
`-pstree,27594 -paus 27568
Run Code Online (Sandbox Code Playgroud)
当我注销时,进程lightdm,27302及以下消失。
在我通过 ssh 进入 Lubuntu 18.04 之后:
$ pstree -a -p -s $$
systemd,1 --system --deserialize 19
??sshd,669 -D
??sshd,22838
??sshd,22979
??bash,22980
??pstree,30610 -a -p -s 22980
Run Code Online (Sandbox Code Playgroud)
注销后,从下sshd,22838到下的所有进程都消失了。
谢谢。
炸鱼薯*_*德里克 -4
请记住,我不会告诉您所有细节,因为即使我这样做,您也无法理解。我也知道您并不熟悉每个概念,但阅读联机帮助页对您有好处。
进程最初如何请求/通知注销进程执行注销(通过发送一些信号,或其他一些IPC方式)?注销过程运行的程序是什么?请求/通知进程通常运行的程序是什么?
假设您通过“注销进程”来表示“会话管理器”。通过 IPC 与logind. /usr/lib/systemd/systemd-logind。任何可以 IPC 的程序logind。
注销进程会杀死哪些进程,不会杀死哪些进程?(有一些方法可以让进程在登录后启动并在注销后生存,它们是如何做到这一点的?使进程没有控制终端似乎是一种方法,但大多数进程在下面的注销中被杀死示例没有控制终端)
该会话内的进程将被终止,如果这是用户的最后一个会话,并且该用户未启用延迟,则整个用户切片将被销毁。通过不杀死它。几乎与控制终端无关,因为logind不使用该内核功能。
注销进程如何杀死这些进程(通过发送一些信号,或其他一些IPC方式)?
复杂的逻辑,包括单元文件和信号中的预定义操作。
1,2,3 查看进程树不起作用。logind不在乎这个。基本上,systemd 风格的服务和会话管理是 cgroup。看systemctl status。
| 归档时间: |
|
| 查看次数: |
1558 次 |
| 最近记录: |