четверг, 22 мая 2014 г.

Про Ctrl+Z

(перевод поста отсюда)
Сочетание клавиш Control+Z используется, чтобы "усыпить" процесс, посылая ему сигнал SIGSTOP, который не может быть перехвачен программой. А вот сочетание клавиш Control+C используется для того, чтобы "прибить" процесс с помощью посыла процессу сигнала SIGINT, который может быть перехвачен выполняющейся программой, чтобы она могла корректно освободить ресурсы перед завершением или вообще проигнорировать его.
Если вы отправили процесс "в спячку", командная оболочка сообщит вам об этом примерно так:
[1]+  Stopped                 yes
Однако, если вы "убьёте" процесс, вы не увидите какого-либо подтверждения от командной оболочки. Для усыплённых процессов доступно несколько действий. Например, выполнив команду:
fg
для приостановленной программы, мы заставим ее продолжить выполнение, взаимодействую с текущей командной оболочкой.
Выполнив команду:
bg
для приостановленной программы, мы позволим ей продолжать выполняться в фоновом режиме (однако, вывод программы всё равно будет идти на терминал).
Если вы желаете прекратить выполнение приостановленной программы, вам не обязательно возобновлять ее выполнение с помощью команды fg. Достаточно команды:
kill %1
Если вы приостановили выполнение нескольких процессов, запустите команду:
jobs
Её вывод будет содержать список приостановленных процессов:
[1]-  Stopped                 pianobar
[2]+  Stopped                 yes
Используя %#, где # - это номер задачи (цифра в квадратных скобках в выводе jobs), вместе с командами bgfg, или kill, вы можете совершать действия над необходимым процессом.

Комментариев нет:

Отправить комментарий