Ctrl-C不会终止正在运行的作业怎么办?


Answers:


141

用+ 发送SIGQUIT信号。Ctrl\

.. $ sleep 10
^\Quit

→相当于kill -3 pid。在用户空间中运行的程序不会忽略sigquit。

还有一组Magic SysRq键盘快捷键。其中一个比较有趣的是:Alt+ SysRq+ k。它会杀死当前虚拟控制台上的每个进程。如果您的其中一个tty完全损坏了,可以用来返回。在运行X.org的tty上,可以毫不留情地杀死X。

在大多数键盘上,SysRq键与打印键相同。在我的笔记本上,可以使用Fn键调用它。即依次按Alt→Fn→打印→k。

以下是一些基本的流程管理快捷方式:

  • Ctrl+ Z:暂停一个进程(加号bg在后台继续执行,fg加到前台)
  • Ctrl+ C:礼貌地要求该进程立即关闭
  • Ctrl+ \:无情地杀死当前处于前台的进程
  • Alt+ SysRq+ s:将数据写入磁盘(总是在杀死重要数据之前执行此操作)
  • Alt+ SysRq+ sk:无情地杀死一个给定的虚拟主机上的所有当前进程
  • Alt+ SysRq+ sb:无情地重启,而无需卸载,
  • Alt+ SysRq+ reisub:安全ř EBOOT Ë VEN F中的小号 ystem是ü tterly b roken,

注:Ctrl+ Z,而相比之下,Ctrl+ CCtrl+ \,也适用于manviless,等。

如有疑问,以下程序几乎总是可行的:

~$ sleep 10
^Z
[5]+  Stopped              sleep 10
~$ ps
  PID TTY          TIME CMD
 4804 pts/0    00:00:00 bash
 6207 pts/0    00:00:00 sleep
 6208 pts/0    00:00:00 ps
~$ kill -9 6207
[5]+  Killed                  sleep 10
~$ 

^ Z当然表示已按下Ctrl+ Z


有关Shell和Terminals的更多信息,请参见以下内容:


3
适用于“ sleep 10”,但不适用于“ man”或“ vi”。显然,“ kill -9 pid”确实可以杀死两个进程。我想念什么吗?
奥利维尔·拉隆德

3
Ctrl + Z可处理less,man,vi等。然后,您可以执行以下操作杀死它们,ps以查看其进程ID并使用kill pid或(如果您不关心该程序的其他实例)杀死它们killall vi。无论如何,Ctrl-Z似乎总是有效。
Stefano Palazzo

5
您也kill %%可以取消最后一个工作,kill %5其中5是显示的工作编号jobs
奥利维尔·拉隆德

2
Ctrl- \发送SIGQUIT而不是SIGKILL。SIGQUIT和SIGKILL之间有一些重要的区别。zh.wikipedia.org/wiki/SIGQUIT
朱利安诺

4
键盘布局中没有键时,如何按Ctrl+ 键?\ \
Forivin


8

有时CTRL+C会被发送到错误的程序或输入通道。这对于编辑器尤其常见,例如vi,带有管道输出的命令,涉及循环的复杂bash命令等。

一个简单,快速的解决方案是暂停作业CTRL+Z,然后按作业编号将其杀死:kill %1kill -9 %1等。


6
  • 尝试以下方法之一:

    Ctrl+4

    Ctrl+\


  • 要么:

    Ctrl+ Z然后运行:

    kill %1

%1当您按Control- 时,返回的作业编号在哪里Z?添加-9逼杀。


在文本控制台中时,您也可以尝试:Ctrl- SysRq。内核应终止进程。

SysRq- k杀死当前虚拟控制台上的所有进程(也可以杀死X和svgalib程序)。

注意:当使用魔术SysRq键杀死冻结的图形程序时,该程序将无法恢复文本模式。这会使所有内容都不可读。

请参阅:Magic SysRq键及其命令组合。



0

您可能已将复制的快捷方式从以下位置更改:

CTRL+ SHIFT+C

CTRL+C

这样,当您尝试终止进程时,CTRL+ C无效。

尝试将复制快捷方式替换为CTRL+ SHIFT+ C


1
更改复制快捷方式与强制终止进程无关!
SuB

能否请您扩展一下答案?逐步进行比较理想,主要是OP可以按照您的建议进行操作。:)
ThatGuy

这实际上帮助了我。我曾经在MacOS上使用CTRL + C,却没有意识到Ubuntu命令是CTRL + SHIFT + C
ratskin

-1

试试Ctrl+ Alt+Backspace

如果您使用的是ubuntu 10.04,则要启用此密钥。

要启用Control- Alt-Backspace

转到系统->首选项->键盘

选择布局选项卡,然后单击布局选项

选择键序列杀死X服务器,并启用Control+ Alt+Backspace

注意:

压延Ctrl- Alt- Backspace将重新启动X服务器。


编辑了问题,以明确我想从终端中终止该进程。
Olivier Lalonde 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.