Answers:
通常,您可以使用SIGHUP来“友好”关闭应用程序(带有或不带有图形界面)。
kill -HUP <application_pid>
编辑:添加了一些其他信息
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>
显然,最后一个命令不是那么“友好”。
pkill
将全部杀死。例如,运行几次以进行一些后台处理:sed "s/Woo/woo/" < /dev/urandom >> /dev/null &
。然后做pkill -HUP sed
。您将杀死您启动的sed的所有实例以及执行有用工作的所有其他实例。
pkill
还将杀死一些您不希望看到的应用程序:例如,如果您chromium
正在运行,并且想要杀死一个名为的程序rom
,pkill
它将很乐意被击落chromium
。更好地使用killall
,它只会匹配确切的名称(但是在Solaris上不会,因为它实际上会杀死所有进程)。
pkill -x
获取完全匹配而不是部分匹配。我个人利用部分匹配来保存键入内容,但是您必须知道该工具的作用。是的,默认情况下它匹配部分字符串。另一个有用的选择是-f
与完整的命令行匹配,而不是与之匹配$0
。
没有通用的方法告诉应用程序退出并保存其配置。可能存在使用特定框架来通知应用程序的方法,例如dcop kfoo MainApplication-Interface quit
对于某些KDE 3应用程序。请注意,该应用程序可能会显示一个对话框,要求您进行确认。
如果X显示无法使用,请终止X服务器。按Ctrl+ Alt+ BackSpace; 如果不起作用,请使用杀死X服务器进程sudo pkill -x Xorg
。当X服务器死机时,所有X应用程序都会收到通知,并且它们将尝试正常退出(不能保证它们将保存所有内容,但这是您最好的选择)。
您可能要考虑的另外两个命令是wmctrl -c
和xdotool windowkill
。我不确定windowkill
您所追求的到底是不是真的,如果不是的话,您可能会对windowdelete
补丁感兴趣。
pkill
来指定可执行文件的名称。例如:pkill -HUP firefox-bin