在Mac终端中停止Python

26

使用Mac终端中的Python,请输入以下命令:

ctrl-z

会停止 Python,但不会退出它,输出类似于这样:

>>> 
[34]+  Stopped                 python

正如您所见,我已经停止了34个Python调用。

虽然我可以使用

>>> exit()

退出Python,问题如下:

  1. 是否有一种快捷键可以真正退出(而不仅仅是停止)终端中的Python?为什么

    ctrl-c

    无法工作?

  2. 如何杀死所有已停止的Python进程?

顺便问一下,我如何使用键盘来输入“ctrl-c”和其他热键?

谢谢!


3
要杀死所有其他正在运行的Python实例,请在终端中键入以下命令:killall -vs SIGKILL python - smac89
4个回答

32

CTRL+d -> 定义EOF(文件结尾)。

CTRL+c -> 终止大多数任务。

但是,如果您编写了一个Python包装程序来依次调用其他Python程序,则Ctrl-c仅会停止当前正在运行的作业。包装程序将继续运行。最坏的情况是,您可以执行以下操作:

打开:应用程序->实用程序->活动监视器,在活动监视器中找到标记为Python的进程,将其突出显示,然后单击“退出进程”。

这些三个建议应该适用于大多数需要停止程序的情况。


更直接的方式是:是的。Ctrl-d将停止Python终端。此外,如果您对Python及其终端有任何其他问题,请在终端中键入:“help()”。探索这个小程序将教你很多东西。 :) - user2522001
CTRL + d 退出终端。 - AnonymousUser

1
这不是Python问题本身,而是Unix shell行为的一种差异,与Windows和其他系统不同。请参阅维基百科关于CTRL-Z的文章以获取更完整的解释:
在类Unix系统上,Control+Z是键序列的默认键盘映射,用于挂起进程(SIGTSTP)。当用户在计算机终端上输入时,当前正在运行的前台进程将收到SIGTSTP信号,通常会导致该进程暂停执行。用户可以通过键入“fg”(代表foreground)命令或键入“bg”(代表background),并进一步键入“disown”命令来分离后台进程与终端。
在OS X和其他各种基于Unix的系统上,您可以使用stty命令更改产生SIGTSTP(或者也可以是eof)的哪个键:
$ stty -a
speed 38400 baud; 30 rows; 90 columns;
lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl
    -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
    -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
    -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
    -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
    min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
    stop = ^S; susp = ^Z; time = 0; werase = ^W;
$ stty susp ^Y
$ cat
^Y
[1]+  Stopped                 cat

0

你可能需要在点击ctrl+cctrl+z时按住shift键...


-1

你可以输入CTRL + D来退出Python。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接