2013-08-04 3 views
16

Использование Python в терминале на Mac, типостановка питона в терминале на макинтош

ctrl-z 

остановит питона, но не выйти из него, давая такой вывод:

>>> 
[34]+ Stopped     python 

Как вы можете см., я остановил 34 вызова python.

Хотя я мог бы использовать

>>> exit() 

для выхода из питона, вопросы:

  1. Есть короткий ключ действительно выход (не просто остановить) питон в терминале? и, почему

    Ctrl-C

    не работает?

  2. Как убить всех остановленных python?

BTW, как я могу набрать 'ctrl-c' и другие горячие клавиши с клавиатурой?

Спасибо!

+3

Чтобы убить все другие запущенные экземпляры python, введите следующую команду в своем терминале: killall -vs SIGKILL python – smac89

ответ

21

CTRL +d -> Определяет EOF (конец файла).

CTRL +с -> Будет ли прекратить большинство рабочих мест.

Если, однако, вы написали программу-оболочку python, которая в свою очередь вызывает другие программы-питоны, Ctrl-c остановит только то, что выполняется в настоящий момент. Программа-обертка будет работать. В худшем случае вы можете сделать это:

Open: Приложения -> Утилиты -> Монитор активности, найдите процесс, обозначенный как python, выделите его на мониторе активности и нажмите «Выход из процесса».

Эти три предложения должны работать в большинстве ситуаций, когда вы хотите остановить программу.

+0

Подробнее: да. Ctrl-d остановит терминал python. Также, если у вас есть другие вопросы относительно python и его терминала, введите: «help()» в терминале. Изучение этой маленькой программы научит вас многим. :) – user2522001

1

Это не проблема Python, как таковая. Это поведение оболочки Unix и отличается от Windows и других систем. Смотрите Wikipedia article on CTRL-Z для более полного объяснения:

В Unix-подобные системы, Control + 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 
Смежные вопросы