我正在使用mac / linux并且我知道ctrl-z会在终端中停止当前运行的命令,但是当我检查系统监视器时,我经常看到该进程仍在运行。在终端中停止命令的正确方法是什么?
通常我在运行python或ruby应用程序时遇到此问题,我不确定这是否与它有关,只是想我会添加它。
答案 0 :(得分:41)
使用 control-z 暂停该过程(请参阅stty -a
的输出,其中列出susp
下的键击。这使它运行,但在假死(因此它没有使用任何CPU资源)。它可以在以后恢复。
如果你想永久停止程序,那么任何中断(通常是 control-c )或退出(通常是 control - \ )都会停止进程,后者产生核心转储(除非你已经禁用它们)。您也可以使用从另一个终端发送到进程的HUP或TERM信号(或者,如果确实有必要,使用KILL信号,但首先尝试其他信号);或者您可以使用 control-z 暂停进程,然后从当前终端发送死亡威胁,然后将(即将死亡)进程带回前台(fg
)
请注意,所有组合键都可以通过stty
命令或等效命令进行更改;默认值可能因系统而异。
答案 1 :(得分:2)
如果您执行ctrl-z
然后键入exit
,它将关闭后台应用程序。
Ctrl+Q
是杀死应用程序的另一种好方法。
答案 2 :(得分:1)
如果您无法控制shell,只需按 ctrl + C 即可停止该过程。如果这不起作用,您可以尝试 ctrl + Z 并使用jobs
和kill -9 %<job #>
将其删除。 &#39; -9&#39;是一种信号。您可以man kill
查看信号列表。