星 «Звезда» 1999

Процессы

В терминале: zvezda learn processes. Урок покажет карточку и завершится; сделайте шаг и снова запустите урок - он проверит и покажет следующую.

Шаг 1 из 4

Дарья: Кэндзи записал: «Процесс - это запущенная программа. У каждого есть номер - PID». Проверим на счётчике. Запустите его в фоне - с & в конце:

zv-counter &

Bash ответит строкой вроде [1] 12345: номер задания и PID. На сервере работают процессы всех студентов, поэтому свой ищут так:

pgrep -u "$USER" zv-counter

Шаг 2 из 4

Дарья: Остановить процесс - значит послать ему сигнал. kill PID - вежливая просьба завершиться (сигнал TERM). Счётчик её услышит и уберёт за собой:

kill ВАШ_PID

Чужие процессы kill не тронет - только свои. Бывают упрямые программы, которые TERM игнорируют. Тогда kill -9 PID - сигнал KILL, его перехватить нельзя. Но сначала - всегда обычный kill.

Шаг 3 из 4 (продолжение)

Дарья: Основа пройдена - этого хватит для задания 14. Дальше - для задания 15. Ctrl+C прерывает программу, а Ctrl+Z ставит её на паузу. Подопытной буду я.

Сейчас я жду. Нажмите Ctrl+Z - я встану на паузу, вернётся приглашение bash. Потом наберите fg - и я продолжу. (fg - в этом же окне.)

Шаг 4 из 4 (продолжение)

Дарья: А теперь прервите меня: Ctrl+C.

Шпаргалка

pgrep -u "$USER" имя   - найти свои процессы по имени
kill PID                 - попросить завершиться (TERM)
kill -9 PID              - завершить насильно, если kill не помог
Ctrl+C / Ctrl+Z          - прервать / поставить на паузу
fg, jobs                 - вернуть с паузы, список заданий этого окна