Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Отправка сигналов процессам с помощью kill

Ассоциация убивать Команда используется для отправки сигналов программам. Его наиболее распространенный синтаксис выглядит так:



убить [-сигнал] PID ...

убить [-сигнал] PID ...


Если в командной строке не указан сигнал, то СРОК По умолчанию отправляется сигнал (Завершить). В убивать Команда чаще всего используется для отправки следующих сигналов:


Таблица 10-4: Общие сигналы


Номер регистрации

Имя

Смысл

1

HUP

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


компьютеры с телефонными линиями и модемами. Сигнал используется для указания программам, что управляющий терминал «повесил трубку». Эффект от этого сигнала можно продемонстрировать, закрыв терминальный сеанс. Программа переднего плана, запущенная на терминале, получит сигнал и завершит свою работу.

Этот сигнал также используется многими программами-демонами для повторной инициализации. Это означает, что когда демон посылает этот сигнал, он перезапускается и перечитывает свой файл конфигурации. Веб-сервер Apache - это пример демона, который использует HUP сигнал таким образом.

2

INT

Прерывать. Выполняет ту же функцию, что и Ctrl-C ключ отправлен с терминала. Обычно это завершает программу.

9

Убить

Убийство. Этот сигнал особенный. В то время как программы могут по-разному обрабатывать посылаемые им сигналы, в том числе игнорировать их все вместе, Убить сигнал никогда не отправляется в целевую программу. Скорее ядро ​​немедленно завершает процесс. Когда процесс завершается таким образом, ему не дается возможности «очистить» после себя или сохранить свою работу. По этой причине Убить signal следует использовать только в крайнем случае, когда другие сигналы завершения не работают.

15

СРОК

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

18

CONT

Продолжать. Это восстановит процесс после STOP

сигнал.

19

STOP

Стоп. Этот сигнал заставляет процесс приостанавливаться без завершения. Словно Убить сигнал, он не отправляется целевому процессу, поэтому его нельзя игнорировать.


Давайте попробуем убивать команда:


[я @ linuxbox ~] $ xlogo &

[1] 13546

[я @ linuxbox ~] $ kill -1 13546

[1] + Hangup xlogo

[я @ linuxbox ~] $ xlogo &

[1] 13546

[я @ linuxbox ~] $ kill -1 13546

[1] + Hangup xlogo


В этом примере мы запускаем хлого программу в фоновом режиме, а затем отправьте ей HUP сигнал с убивать, хлого программа завершается, и оболочка указывает, что фоновый процесс получил сигнал зависания. Возможно, нам придется нажать клавишу ввода несколько раз, прежде чем появится сообщение. Обратите внимание, что сигналы могут быть указаны либо по номеру, либо по имени, включая имя с префиксом «SIG»:



[я @ linuxbox ~] $ xlogo &

[1] 13601

[я @ linuxbox ~] $ убить -INT 13601 [1] + Прерывание xlogo [me @ linuxbox ~] $ xlogo &

[1] 13608

[я @ linuxbox ~] $ убить -SIGINT 13608

[1] + Прерывание xlogo

[я @ linuxbox ~] $ xlogo &

[1] 13601

[я @ linuxbox ~] $ убить -INT 13601 [1] + Прерывание xlogo [me @ linuxbox ~] $ xlogo &

[1] 13608

[я @ linuxbox ~] $ убить -SIGINT 13608

[1] + Прерывание xlogo


Повторите приведенный выше пример и попробуйте другие сигналы. Помните, что мы также можем использовать спецификации вакансий вместо PID.

Процессы, как и файлы, имеют владельцев, и вы должны быть владельцем процесса (или суперпользователя), чтобы отправлять ему сигналы с помощью убивать.

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


Таблица 10-5: Другие общие сигналы


Номер регистрации

Имя

Смысл

3

УВОЛИТЬСЯ

Покидать.

11

СЭГВ

Нарушение сегментации. Этот сигнал отправляется, если программа незаконно использует память, т. Е. Пыталась записать то место, где это было запрещено.

20

ТСТП

Конечная остановка. Это сигнал, отправляемый терминалом, когда Ctrl-Z нажата клавиша. в отличие от STOP сигнал, ТСТП сигнал получен


изображение

программа, но программа может проигнорировать ее.


изображение

28 Смена окна WINCH. Это сигнал, посланный

система, когда окно меняет размер. Некоторые программы, например топ и Меньше будут реагировать на этот сигнал, перерисовывая себя, чтобы соответствовать новым размерам окна.


изображение


Для любопытных полный список сигналов можно увидеть с помощью следующей команды:



[я @ linuxbox ~] $ kill -l

[я @ linuxbox ~] $ kill -l


Лучшие облачные вычисления для ОС в OnWorks: