loading

Процессы Linux



УПРАВЛЕНИЕ ПРОЦЕССАМИ С ПОМОЩЬЮ СИГНАЛОВ


В данном вопросе изучаются сигналы, управляющие клавиши для передачи процессам сигналов, команды для управления процессами.

Начальные условия: Командная строка после входа в систему.

1.Запустите команду yes, производящую бесконечный вывод символа y на экран. Прервите её нажатием Ctrl-C.
user@desktop ~ $ yes
y
y
y
y
...
y
user@desktop ~ $
При этом запущенному процессу был отправлен сигнал SIGTERM – завершения программы.

2.Запустим сбор информации обо всех файлах системы с помощью команды find / > files.txt.
user@desktop ~ $ find / > files.txt

3.Запустите еще один терминал, используя команду telnet и войдите под тем же пользователем.

4.Найдем идентификатор запущенного только что процесса с помощью команды ps aux | grep find, запущенной в другом терминале.

user@desktop ~ $ ps aux | grep find
user 8178 9.7 0.1 2844 1020 pts/1 R+ 23:45 0:00 find /
user 8230 0.0 0.1 2708 736 pts/2 R+ 23:45 0:00 grep find

Первая строка содержит необходимый PID.

5.Отправим сигнал завершения этому процессу с помощью команды kill 8178, указав в качестве параметара идентификатор процесса.

user@desktop ~ $ kill 8178

Можно убедиться, что на терминале с запущенной командой появились строка «Terminated» и приглашение.

6.Если попытаться завершить системный процесс, например командой kill 1, появится сообщение об ошибке доступа:

user@desktop ~ $ kill 1
bash: kill: (1) - Operation not permitted

Отправление сигналов системным процессам может производить только суперпользователь.

7.Альтернативным способом отправления сигналов процессам – по имени процесса, а не по PID – является команда killall. Выполнив команду killall bash, мы завершим все командные оболочки, а тем самым и сеансы пользователей.

user@desktop ~ $ killall bash

8.До этого мы отправляли только сигнал завершения процесса. Он может перехватываться и игнорироваться программами. Неперехватываемым является сигнал SIGKILL, который может быть отправлен, например, следующей командой: killall -SIGKILL find

user@desktop ~ $ killall -SIGKILL find


1 [2] 3 4 5
icon warning
 (Голосов: 3)

icon edit Pavel-golicon date(27 декабря 2009)
icon print
Добавление комментария:
Имя:
Пароль: (если зарегистрирован)
Email: (обязательно!)
captcha
Up
Down