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

jfk*_*jfk 24 command-line kill gui signals

有没有办法以友好的“请立即退出”方式关闭 GUI 应用程序,而无需对应用程序窗口进行图形访问?

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

and*_*coz 21

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

kill -HUP <application_pid>
Run Code Online (Sandbox Code Playgroud)

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

处理 SIGHUP 的方式取决于应用程序,因此,正如Dave 所指出的,这个信号可能会被屏蔽或处理。然而,几乎所有交互式应用程序都会通过 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>
Run Code Online (Sandbox Code Playgroud)

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

  • 如果您不知道应用程序的 PID,您可以使用 `pkill` 来指定可执行文件的名称。例如:`pkill -HUP firefox-bin` (3认同)

小智 5

您可能想尝试:

kill -TERM <pid>
Run Code Online (Sandbox Code Playgroud)

或者

kill -TERM `pidof <application_name>`
Run Code Online (Sandbox Code Playgroud)

至少在某些系统上,当系统处于关闭状态时,所有进程都会在收到 KILL (9) 信号之前收到 TERM (15) 信号。HUP 通常只会导致应用程序重新加载其配置,但在逐个进程的基础上它可能会有所不同。