笔记本linux退出进程,退出Linux后哪些进程可以继续存在,哪些不可以?

我想了解当我们退出Linux时会发生什么(特别是Ubuntu):

>进程最初如何请求/通知注销进程执行注销(通过发送一些信号或其他一些IPC方法)?注销过程运行的程序是什么?请求/通知流程通常运行的程序是什么?

>登出过程会杀死什么进程,什么不进行? (有一些方法可以在登录后立即启动进程,并且他们如何设法做到这一点?使一个没有控制终端的进程似乎是一种方式,但大多数进程都是通过以下方式注销而被杀死的示例没有控制终端)

>注销过程如何杀死这些进程(通过发送一些信号或其他一些IPC手段)?

考虑三种情况:虚拟控制台和桌面环境以及SSH. (前两个是由OS提供的,第三个不是,尽管所有都在用户空间中运行)

>当我登录虚拟控制台时,我得到以下内容

来自登录shell的祖先进程:

1 systemd

721 login

26284 bash

注销后,进程721登录及以下消失.

>在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

当我退出时,进程lightdm,27302及以下

消失.

>在我进入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

我退出后,所有进程从sshd,22838开始到

下面消失了.

谢谢.

解决方法:

我不知道如何在OS注销过程中涉及systemd(特别是/usr/lib / systemd / systemd-logind).

以下是我的部分答案:

> The login process wait() on the login shell process,当登录shell退出时,登录将接收SIGCHLD并唤醒以恢复其执行,这也将退出.

>似乎a logout request program如lxsession-logout sends SIGTERM to the lxsession process(我说“似乎”因为我不太了解源代码).我不知道lxsession如何回应SIGTERM以及为什么它的后代也会死,如I can’t find its disposition.我不知道为什么父母lightdm,lxsession的27302也死了,并猜测the parent lightdm,27302 may wait() on lxsession and die once wake up.

>我不知道当我退出SSH时会发生什么.我猜它类似于CLI登录(案例1),sshd,22979可能会等待bash,22980并且死亡.但我真的不知道为什么有这么多的sshd进程.

标签:linux,ubuntu,process,logout,signals

来源: https://codeday.me/bug/20190814/1650489.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值