Искусство программирования на языке сценариев командной оболочки


Программирование на языке сценариев командной оболочки - стр. 191


Если вы собираетесь использовать nohup в сценариях, то вам потребуется использовать его в связке с командой wait, чтобы не породить процесс "зомби".

pidof

Возвращает идентификатор процесса (pid) по его имени. Поскольку многие команды управления процессами, такие как kill и renice, требуют указать pid процесса, а не его имя, то pidof может сослужить неплохую службу при идентификации процесса по его имени. Эта коменда может рассматриваться как приблизительный эквивалент внутренней переменной $PPID.

bash$ pidof xclock

880

Пример 13-4. Использование команды pidof при остановке процесса

#!/bin/bash # kill-process.sh

NOPROCESS=2

process=xxxyyyzzz # Несуществующий процесс. # Только в демонстрационных целях... # ... чтобы не уничтожить этим сценарием какой-нибудь процесс. # # Если с помощью этого сценария вы задумаете разрыватть связь с Internet, то # process=pppd

t=`pidof $process` # Поиск pid (process id) процесса $process. # pid требует команда 'kill' (невозможно остановить процесс, указав его имя).

if [ -z "$t" ] # Если процесс с таким именем не найден, то 'pidof' вернет null. then echo "Процесс $process не найден." exit $NOPROCESS fi

kill $t # В некоторых случаях может потребоваться 'kill -9'.

# Здесь нужно проверить -- был ли уничтожен процесс. # Возможно так: " t=`pidof $process` ".

# Этот сценарий мог бы быть заменен командой # kill $(pidof -x process_name) # но это было бы не так поучительно.

exit 0

fuser

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

crond

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


Начало  Назад  Вперед



Книжный магазин