Linux - 关机前显示未保存的应用程序

Linux - 关机前显示未保存的应用程序

当您关闭 macOS 系统时,它会要求应用程序逐个退出,并且除非所有应用程序都同意退出(即没有未保存的工作)或直到手动强制退出,否则系统不会关闭。

当您关闭 Windows 系统时,它会为您提供一个宽限期,在此期间您可以查看哪些应用程序拒绝关闭。如果它提醒您没有保存某些内容,您可以在此宽限期内停止关机。

但是,当您通过窗口管理器关闭 Linux 系统时(无论是 KDE 还是 Gnome),它都会立即显示黑屏,并终止每个进程而不检查它们是否已保存。

由于关机时没有保存提示,我丢失了很多工作。我可以在 Linux 上配置一些东西,在关机前显示未保存的应用程序吗?

答案1

正如评论所说,Linux 中的关机脚本旨在关闭电源而不检查其他正在运行的应用程序(这样做有其好处)。如果您确实想在关闭机器之前进行一些检查,则需要编写自己的脚本来执行此操作。例如,像这样:

#!/usr/bin/env bash

## Applications to check before shutting down
apps='(nvim.*|calcurse|aerc)' # add your apps here

ps -eo pid,cmd | grep -E "[0-9]+ $apps" | while read pid process; do
  echo -n "$process is still running. Kill it? [Y/n] "
  read -r yn </dev/tty
  if [[ $yn =~ ^[Yy]?$ ]]; then
    kill $pid
  else
    exit 1
  fi
done && systemctl poweroff

此脚本检索所有正在运行的进程,将它们与 定义的应用程序进行匹配apps,然后提示您终止它们。如果您对其中任何一个输入否,它将立即退出。否则,它将关闭系统。

将此文件放入您的 bash 别名中$PATH,并创建一个别名,以便在运行正常关机命令时执行它。例如,不要运行shutdown,而是将其添加到您的 bash 别名中:

alias shutdown='my_shutdown_script.sh'

您也可以对重新启动执行相同的操作。只需修改脚本以接受参数/标志即可。您明白了 :)

编辑:如果(neo)vim 是你唯一想检查的应用程序,我建议你查看mksession

相关内容