登录何时终止?

Tim*_*Tim 0 linux login

启动操作系统时,gettylogin 运行。登录完成后似乎会继续运行登录。

没有logout命令。我想知道什么时候login会终止运行,除非关闭操作系统?

顺便说一句,login仅在文本控制台上运行,而不是在启动 X 窗口和显示管理器和桌面环境时是否正确?

谢谢。

Ste*_*itt 5

login当它的子进程(登录用户的登录 shell)终止时终止。它甚至可以exec不用分叉,替换自己的孩子,但它需要照顾 PAM 会话清理,所以它必须等待它的孩子。一旦它终止,getty或者init(更一般地,init 进程)做一些更多的清理(utmp等等)并等待新的登录(如果getty用 替换自己login,或者在login终止时退出,init 进程将启动一个新的getty)。

你是对的,至少在 Linux 下,login通常只在虚拟控制台(或通过串行设备连接的真实终端)上使用。图形显示管理器实现自己的登录机制。您可以login在登录 shell 中运行,例如在终端模拟器中运行,只需小心 ( exec login);很久以前,递归login被用来改变用户,相当于su现在。

请注意,某些 shell 确实有一个logout命令,应该用来代替exit退出登录 shell;在这样的 shell 中,exit通常不会从登录 shell 退出。