【发布时间】:2008-12-04 08:25:53
【问题描述】:
我正在开发我的应用程序(在 Linux 上),遗憾的是它有时会挂起。我可以使用Ctrl+C 发送sigint,但我的程序忽略了sigint,因为它太远了。所以我必须做进程杀舞:
Ctrl+Z
$ ps aux | grep process_name
$ kill -9 pid
当我按下 -say -Ctrl+Shift+C 时,有没有办法配置 bash 向当前进程发送终止信号?
【问题讨论】:
我正在开发我的应用程序(在 Linux 上),遗憾的是它有时会挂起。我可以使用Ctrl+C 发送sigint,但我的程序忽略了sigint,因为它太远了。所以我必须做进程杀舞:
Ctrl+Z
$ ps aux | grep process_name
$ kill -9 pid
当我按下 -say -Ctrl+Shift+C 时,有没有办法配置 bash 向当前进程发送终止信号?
【问题讨论】:
我认为没有任何密钥可以用来发送 SIGKILL。
SIGQUIT 会代替吗?如果你没有发现,默认是核心转储进程。默认情况下这是 ^\。你可以通过运行看到这一点:
$ stty -a
在终端中。它应该说:
quit = ^\
【讨论】:
您可以通过按 ^\ 向当前前台进程发送 SIGQUIT 信号(默认情况下,您可以运行 stty -a 以查看 quit 的当前值。)
您还可以通过运行从 shell 中终止最后一个后台进程
$ kill %%
【讨论】:
鉴于 SIGKILL 没有绑定键,如果 SIGQUIT 没有为您删除,您可以做的是创建一个别名来保存一些输入。一、
Ctrl+Z
$ ps aux | grep process_name
$ kill -9 pid
dance 可以概括为(如果您想要杀死的进程只有一个实例)
Ctrl+Z
$ pkill -9 process_name
如果你的用例总是先挂起然后杀死,你可以创建一个别名来杀死最后一个运行的进程
$alias pks="pkill -9 !!:0"
在您的 ~/.bash_profile 中添加该别名。
【讨论】: