Читаем Linux и UNIX: программирование в shell. Руководство разработчика. полностью

Существует сигнал 0, который ранее уже рассматривался (при создании файла .logout). Этот сигнал является сигналом "выхода из интерпретатора shell". Чтобы переслать сигнал 0, введите в командную строку команду exit либо примените к процессу или укажите в командной строке комбинацию клавиш [Ctrl+D].

Для пересылки сигнала используется формат:

kill [- номер сигнала:| имя сигнала] ID процесса

Если команда kill вводится без указания номера или названия сигнала, то она по умолчанию относится к сигналу с номером 15. Для просмотра списка всех сигналов примените следующую команду:


$ kill -1
1)SIGHUP2)SIGINT3)SIGQUIT4)SIGILL
5)SIGTRAP6)SIGIOT7}SIGBUS8)SIGFPE
9)SIGKILL10)SIGUSR111)SIGSEGV12)SIGUSR2
13)SIGPIPE14)SIGALRM15)SIGTERM17)SIGCHLD
18)SIGCONT19)SIGSTOP20)SIGTSTP21)SIGTTIN
22)SIGTTOU23)SIGURG24)
SIGXCPU25)SIGXFSZ
26)SIGVTALRM27)SIGPROF28)SIGWINCH29)SIGIO
30)SIGPWR

26.2.1. Уничтожение процесса

При пересылке сигнала 1 процесс заново считывает файл конфигурации. Например, если при выполнении процесса под названием демон dns файлы базы данных изменяются, не следует уничтожать демон и заново запускать его. Выполните всего лишь команду kill -1. В этом случае файлы конфигурации просматриваются заново.

Ниже приводится пример пересылки сигнала 9 (гарантированное уничтожение) для уничтожения процесса mon_web, который выполняется в системе. Сначала примените команду ps для создания процесса.

$ ps -ef | grep mon_web | grep -v root

157 ? S 0:00 mon_web

Если в системе не поддерживается команда ps -ef, то воспользуйтесь командой ps xa. Для уничтожения процесса можно применить команду:

kill -9 157

или

kill -s SIGKILL 157

В некоторых системах можно не указывать опцию -s. Например, введите команду

kill SIGKILL 157

В приведенном ниже сценарии уничтожение процесса основано на использовании имени процесса. Имя устраняемого процесса указывается в виде параметра. Выполняется проверка, что данный процесс был действительно уничтожен. Утилита grep используется для обнаружения всех совпадающих имен процесса. Если соответствующие имена обнаруживаются, поступает запрос пользователю, следует ли уничтожить найденные процессы. Для уничтожения процесса применяется команда kill -9.

Соответствующий сценарий выглядит следующим образом:

$ pg pskill

#!/bin/sh

# pskill

HOLD1=/tmp/HOLD1.$$

PROCESS=$1

usage () {

# usage

echo "Usage :''`basename $0` process_name"

exit 1

}

if [ $# -ne 1 ]; then

usage

fi

case $1 in

*)

применение программы grep для исключения нашего сценария из вывода команды ps

извлечение полей 1 и 6, перенаправление во временный файл

ps x | grep $PROCESS | grep -v $0 | awk '{print $1"\t" $6}'>$HOLD1

# ps -ef |.. если команда ps x не срабатывает

;;

esac

#есть ли файл??

if [ ! -s $HOLD1 ]; then

echo "No processes found…sorry"

exit 1

fi

#просмотр содержимого временного файла и отображение значений полей

while read LOOP1 LOOP2

do

echo $LOOP1 $LOOP2

done <$HOLD1

echo -n "Are these the processes to be killed? [y..n] >"

read ANS

case $ANS in

Y|y) while read LOOP1 LOOP2

do

echo $LOOP1

kill -9 $LOOP1 done

<$HOLD1

rm /tmp/*.$$

;;

N|n);;

esac

При выполнении сценария поток вывода имеет вид:

$ pskill web

1760 ./webmon

1761 /usr/apps/web_col

Are these the processes to be killed? [y..n] >y

1760 1761 [1]+ Killed webmon

Чтобы убедиться в том, что процесс уничтожен, введите команду повторно:

$ pskill web

No processes found..sorry

26.2.2. Обнаружение сигнала

Некоторые сигналы можно захватить и выполнить соответствующие действия. Другие сигналы нельзя уловить. Например, если команда получает сигнал 9, пользователю не нужно предпринимать какие‑либо действия.

Перейти на страницу:

Похожие книги

Библия БДСМ. Полное руководство
Библия БДСМ. Полное руководство

Первое исчерпывающее пособие по БДСМ. Уникальный иллюстрированный гид для тех, кому просто любопытно, и для тех, кто уже в Теме. В этой книге известные педагоги и профессионалы ответили на все важные вопросы и раскрыли все интересующие вас темы: основные принципы, ролевые игры, господство, подчинение, фистинг, садизм, мазохизм, связывание, физическое воздействие, тантра необычного секса и многое другое. Если вы хоть раз задумывались о БДСМ, значит, эта книга то, что вам нужно. Она способна обучить, вдохновить и бросить вызов даже опытным игрокам. Не бойтесь экспериментировать, и добро пожаловать в мир сексуальных приключений!

Литагент «5 редакция» , Тристан Таормино

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Руководства / Дом и досуг / Образовательная литература / Словари и Энциклопедии