如何通过终端软杀gui应用程序?

如何通过终端软杀gui应用程序?

有没有办法以友好的方式关闭GUI应用程序“请现在戒掉自己“这样,无需图形方式访问应用程序窗口?

例如,如果 Gnome/X 显示崩溃为黑色,我想切换到 tty2 并关闭像 firefox 这样的应用程序,让它们保存配置等。最多不需要进一步的用户查询。

答案1

通常,您可以使用 SIGHUP 来“友好”地关闭应用程序(无论有或没有图形界面)。

kill -HUP <application_pid>

编辑: 添加了一些其他信息

SIGHUP 的处理方式取决于应用程序,因此,戴夫请注意,该信号可能会被屏蔽或处理。不过相当全交互的应用程序通过 SIGHUP 优雅退出。

另一方面,我不得不承认我通常遵循以下模式:

kill -HUP <application_pid>
# check if application is still running
kill -INT <application_pid>
# check if application is still running
kill -KILL <application_pid>

显然最后一个命令不是那么“友好”。

答案2

您可能想尝试:

kill -TERM <pid>

或者

kill -TERM `pidof <application_name>`

至少在某些系统上,当系统关闭时,所有进程都会在发送 KILL (9) 信号之前发送 TERM (15) 信号。 HUP 通常只会导致应用程序重新加载其配置,但它可能会因进程而异。

答案3

没有通用的方法来告诉应用程序退出并保存其配置。可能有多种方法可以通知使用特定框架的应用程序,例如dcop kfoo MainApplication-Interface quit对于某些 KDE 3 应用程序。请注意,应用程序可能会显示一个对话框,要求您确认。

如果 X 显示变得不可用,请终止 X 服务器。按Ctrl+ Alt+ BackSpace;如果这不起作用,请使用 终止 X 服务器进程sudo pkill -x Xorg。当 X 服务器挂掉时,所有 X 应用程序都会收到通知,并且它们将尝试正常退出(不能保证它们会保存所有内容,但这是最好的选择)。

答案4

您可能需要考虑的另外两个命令是wmctrl -cxdotool windowkill。我不确定是否windowkill正是您所追求的,如果不是您可能会对windowdelete修补。

相关内容