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



Команду kill чаще всего используют для прекращения выполнения процесса. Эта команда может послать в процесс любой сигнал, но по умолчанию посылается сигнал TERM, сигнал программного завершения. Команду kill могут использовать как обычные пользователи (для своих собственных процессов), так и суперпользователь(для любого процесса). Она имеет следующий синтаксис:

kill [-сигнал] pid,

где сигнал – номер или символическое имя посылаемого сигнала, а pid – идентификационный номер процесса-адресата. Команда kill без номера сигнала «не гарантирует», что процесс умрет, потому что сигнал TERM можно перехватить, блокировать и игнорировать. Команда kill –9 pid «гарантирует», что процесс умрет, потому что сигнал 9, KILL, другими процессами не перехватывается.

Запуск процессов в фоновом режиме

Оболочка позволяет запустить процесс и, не дожидаясь его завершения, запустить другой. Чтобы это сделать, первый процесс должен быть запущен в фоновом режиме. Для запуска процесса в фоновом режиме используется &, который добавляется в конец командной строки.

После запуска процесса в фоновом режиме появится идентификатор процесса.

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

nohup команда &

Подобный запуск заставляет указанную аргументом команда команду игнорировать сигнал отбоя.

Команда FG

Чтобы перевести задачу из фонового или остановленного режима в активный, использу­ется команда fg. С помощью команды fg %1 задачу можно перевести в активный режим (на передний план). Впоследствии задачу переднего плана можно снова приоста­новить, нажав комбинацию клавиш <Ctrl + Z>, а его управлением заняться позже.

На передний план можно перевести любое задание, содержащееся в списке, получен­ном с помощью команды jobs. Это можно осуществить даже в том случае, когда оно уже работает в фоновом режиме. Если в фоновом режиме выполняется только одно задание, то при вызове команды fg его номер указывать не нужно. Если вызвать команду fg без па­раметров, то на передний план будет переведено текущее задание.

Команда BG

Если выполнение задания приостановлено в результате нажатия комбинации клавиш <Ctrl + Z>, то продолжить его выполнение в фоновом режиме можно с помощью команды bg. Для этого при вызове команды нужно указать соответствующий номер задания, после чего его выполнение продолжится в фоновом режиме вплоть до завершения, либо до тех пор, пока снова не потребуется выполнить обмен данными с терминалом.

При нажатии комбинации клавиш <Ctrl + Z> выполнение текущего задания бу­дет приостановлено. Для перевода его в фоновый режим достаточно ввести команду bg без параметров.

Планирование периодического выполнения

Команда at принимает дату или время в качестве параметра и любое число командных строк из стандартного ввода. Когда встретится признак конца файла, команда at создает сценарий для выполнения команд в указанное время.

       Периодическим выполнением процессов управляет демон cron. Он запускается во время начальной загрузки системы и остается в активном состоянии, пока система не выключена.

       Командные строки обрабатываются интерпретатором sh, поэтому почти все, что можно сделать из shell вручную, можно перепоручить процессу cron.

Файл конфигурации процесса cron называют crontab-файлом. В BSD-системах такой файл один, обычно / usr / lib / crontab или / etc / crontab, в некоторых системах есть и дополнительный файл crontab . local . Обычные пользователи не могут модифицировать эти файлы. Процесс cron служит главным образом средством администратора.

       В некоторых-системах используется более открытая модель, здесь имеет место целый crontab-каталог. Файлы передаются в этот каталог командой crontab, и cron читает содержимое каждого из них. Процесс cron обычно выполняет свою работу "молча", но в некоторых системах может вестись файл регистраци (как правило, это / var / cron / log или / usr / lib / cron / log).

       Для запуска редактора crontab файла следует набрать crontab – e . Файл откроется для текущего пользователя. Каждая строка файла конфигурации, не являющаяся комментарием, содержит 6 или 7 полей и представляет одну команду. Семипольный формат имеет такой вид:

минуты часы  день месяц день_недели [имя_пользователя] команда

0...59  0...23 1...31 1...12    1...7

Поле [имя_пользователя] в Linux DeepStyle отсутствует, так как для каждого пользователя crontab запускает отдельно. Каждое из полей может содержать * , которая обозначает любую цифру, цифру или числа, разделенные запятыми, а также диапазон, к примеру как 23-30

В полях минуты часы день месяц день_неделидается информация о времени запуска команды. Например, спецификации времени

45 10 * * 1-5 означает "10 часов 45 минут, с понедельника по пятницу",

30 * 13 * 5 означает "каждые полчаса по пятницам и каждые полчаса пятницы 13 числа".

Поле командасодержит подлежащую выполнению командную строку sh. Это может быть любая команда shell, причем без кавычек. Считается, что команда продолжается до конца строки и может содержать пробелы и символы табуляции. Примеры:

30 2 * * 1 (cd /users/joe/project; make)

20 1 * * * find /tmp -atime +3 -exec rm -f {} \ ;

55 23 * * 1,2,3,4,7 /staff/trent/bin/acct-script

Изменение crontab-файла осуществляется командой crontab имя _ файла .

crontab - e имя_файлапроверяет версию файла, вызывает редактор и затем активизирует файл; crontab - l имя_файла выдает листинг файла на стандартный вывод; crontab - r имя_файла удаляет файл.

С помощью файлов cron . allow и cron . deny можно указать, кто имеет право использовать cron, а кто нет.


Дата добавления: 2018-11-24; просмотров: 296; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!