我可以在不关闭所有正在运行的程序的情况下关闭 Ubuntu 系统。我认为这不应该发生

Man*_*mar 5 shutdown

  1. 当我关闭 Ubuntu 系统时,它不会限制我,而是允许我在不关闭所有程序的情况下关闭我的系统。
  2. 为什么它不限制我关闭所有程序?

Tak*_*kat 4

Ubuntu 将发送SIGTERM信号以允许正在运行的应用程序正常终止并关闭其打开的进程。仅当应用程序不监听 SIGTERM 时,它才可能被终止。

如果正在运行的应用程序需要用户交互(使用 LibreOffice 打开的未保存文档进行测试),关闭将停止,直到用户交互。

在多用户系统上,只要其他用户登录,用户启动的关闭就会停止。我们需要 root 权限才能仍然能够关闭。然后 SIGTERM 信号将被发送到所有正在运行的会话中的所有打开的应用程序。

如果假设超时(90 秒)后用户或应用程序没有对 SIGTERM 信号做出反应,则应发出 SIGKILL,这只会导致未保存的数据丢失。upstart 发出的 SIGTERM 的默认 KILL 超时要短得多(5 秒)。

然而,对当前版本的测试表明,我们始终可以关闭,而不会提示保存其他登录用户未完成的工作。由于这确实可能导致数据丢失,我认为这是一个错误:


小智 1

根据我使用 Ubuntu 和其他 Linux 发行版的经验。当您关闭计算机时,内核会自动向所有打开的程序发送关闭通知。然后它在杀死包括网络在内的所有进程后关闭。Windows 有一个功能,其工作方式略有不同,如果打开的进程需要保存文件,则关闭进程会暂停一段时间,直到观察到用户交互。