2013-08-04 92 views
16

在Mac上的終端使用python,類型停止蟒蛇在終端上的MAC

ctrl-z 

將停止Python,但不退出它,使輸出像這樣:

>>> 
[34]+ Stopped     python 

,你可以看,我已經停止了34個python調用。

雖然我可以用

>>> exit() 

退出蟒蛇的問題是:

  1. 有短鍵退出真(不只是停止)在終端蟒蛇?爲什麼

    ctrl-c

    不工作?

  2. 如何殺死所有停止的python?

順便說一句,我怎麼能鍵入'ctrl-c'和其他熱鍵與鍵盤外觀?

謝謝!

+3

要終止所有其他正在運行的python實例,請在終端中輸入以下命令: killall -vs SIGKILL python – smac89

回答

21

CTRL + d - >定義EOF(文件結束)。

CTRL + c - >將終止大部分工作。

如果你已經編寫了一個python wrapper程序來輪流調用其他python程序,那麼Ctrl-c只會停止當前正在運行的作業。包裝程序將繼續運行。最壞的情況下,你可以這樣做:

打開:應用程序 - >實用程序 - >活動監視器,找到標記爲python的進程,在活動監視器中突出顯示它,然後單擊「退出進程」。

這三個建議應該適用於大多數情況下,你想要一個程序停止。

+0

更直接:yes。 Ctrl-d將停止python終端。另外,如果您有任何關於python及其終端的其他問題,請在終端中鍵入:「help()」。探索這個小程序會教你許多事情。 :) – user2522001

1

這本身不是Python問題。這是Unix shell的行爲,與Windows和其他系統有所不同。更完整的解釋,請參閱Wikipedia article on CTRL-Z

在類Unix系統,控制+ Z是針對暫停進程(SIGTSTP)鍵序列中最常見的默認鍵盤 映射。 當用戶在他們的計算機終端輸入時,運行前臺進程的當前 被髮送一個SIGTSTP信號,該信號通常會導致該進程掛起其執行。用戶可以通過輸入命令'fg'( 前景的簡寫)或通過輸入'bg'(簡稱爲背景)並且 通過鍵入命令'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