Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
kill -9 123
Что это означает? Вообще-то программа kill предназначена для посылки процессам управляющих сигналов, одним из которых является сигнал sigterm (terminate, завершиться). Этот сигнал посылается процессу при выполнении программы kill по умолчанию. Процесс, получивший данный сигнал, должен корректно завершить свою работу (закрыть используемые файлы, сбросить буферы ввода/вывода и т. п.). Ключ -9 указывает программе kill посылать процессу другой тип сигнала – sigkill. Это приводит к тому, что процесс не производит корректного завершения, а немедленно прекращает свою жизнедеятельность. Помимо этих сигналов, в вашем распоряжении целый набор различных сигналов. Полный список сигналов можно получить, выполнив следующую команду:
kill -1
1) SIGHUP
2) SIGINT
3) SIGQUIT
4) SIGILL
5) SIGTRAP
6) SIGABRT
7) SIGBUS
8) SIGFPE
9) SIGKILL
10) SIGUSR1
11) SIGSEGV
12) SIGUSR2
13) SIGPIPE
14) SIGALRM
15) SIGTERM
17) SIGCHLD
18) SIGCONT
19) SIGSTOP
20) SIGTSTP
21) SIGTTIN
22) SIGTTOU
23) SIGURG
24) SIGXCPU
25) SIGXFSZ
26) SIGVTALRM
27) SIGPROF
28) SIGWINCH
29) SIGIO
30) SIGPWR
31) SIGSYS
32) SIGRTMIN
33) SIGRTMIN+1
34) SIGRTMIN+2
35) SIGRTMIN+3
36) SIGRTMIN+4
37) SIGRTMIN+5
38) SIGRTMIN+6
39) SIGRTMIN+7
40) SIGRTMIN+8
41) SIGRTMIN+9
42) SIGRTMIN+10
43) SIGRTMIN+11
44) SIGRTMIN+12
45) SIGRTMIN+13
46) SIGRTMIN+14
47) SIGRTMIN+15
48) SIGRTMAX-15
49) SIGRTMAX-14
50) SIGRTMAX-13
51) SIGRTMAX-12
52) SIGRTMAX-11
53) SIGRTMAX-10
54) SIGRTMAX-9
55) SIGRTMAX-8
56) SIGRTMAX-7
57) SIGRTMAX-6
58) SIGRTMAX-5
59) SIGRTMAX-4
60) SIGRTMAX-3
61) SIGRTMAX-2
62) SIGRTMAX-1
63) SIGRTMAXКак видите, список внушительный. Подробную информацию о сигналах вы найдете в документации на программу kill.
killall
Еще один вариант программы kill. Используется для того, чтобы завершить работу процессов, носящих одно и то же имя. К примеру, в нашей системе запущено несколько программ тс. Для того чтобы одновременно завершить работу этих программ, достаточно всего лишь выполнить следующую команду:killall mc
Конечно, этим не ограничивается использование данной команды. С ее помощью можно отсылать сигналы группе одноименных процессов. Для получения более подробной информации по этой команде обращайтесь к ее тап-странице.
Изменение приоритета выполнения процессов
В операционной системе Linux у каждого процесса есть свой приоритет исполнения. Это очень удобно. Поскольку операционная система многозадачна – то для выполнения каждого процесса выделяется определенное количество времени. Для некоторых задач необходимо выделить побольше, для некоторых можно поменьше. Для этого и предназначен приоритет процесса. Управление приоритетом процесса осуществляется программами nice и renice.
nice
Программа nice позволяет запустить команду с предопределенным приоритетом выполнения, который задается в командной строке. При обычном запуске все задачи имеют один и тот же приоритет, и операционная система равномерно распределяет между ними процессорное время. Однако с помощью утилиты nice можно понизить приоритет какой-либо задачи, таким образом предоставляя другим процессам больше процессорного времени. Повысить приоритет той или иной задачи имеет право только пользователь root. Синтаксис использования nice следующий:nice - number command
Уровень приоритета процесса определяется параметром number , при этом большее его значение означает меньший приоритет процесса. Значение по умолчанию – 10, и number представляет собой число, на которое должен быть уменьшен приоритет. К примеру, процесс top имеет приоритет, равный —5. Для того чтобы понизить приоритет выполнения процесса на десять, мы должны выполнить следующую команду:
nice 10 top
В результате процесс top имеет приоритет, равный 5.
Только пользователь root может поднять приоритет того или иного процесса, используя для этого отрицательное значение параметра number.
renice
Программа renice, в отличие от программы nice, позволяет изменить приоритет уже работающего процесса. Формат запуска программы следующий:renice - number PID
В общем, программа renice работает точно так же, как и nice. Уровень приоритета процесса определяется параметром number , при этом большее его значение означает меньший приоритет процесса. Значение по умолчанию – 10, и number представляет собой число, на которое должен быть уменьшен приоритет процесса.
Только пользователь root может поднять приоритет того или иного процесса, используя для этого отрицательное значение параметра number.
Выполнение процессов в заданное время
Одна из основных задач автоматизации администрирования операционной системы – выполнение программ в заданное время или с заданной периодичностью. Конечно, можно запускать программы самостоятельно, но проводить 24 часа на работе или постоянно удаленно запускать программы в самое неподходящее время (часа в три ночи) – безумие. Для решения этих проблем существует несколько утилит, позволяющих запускать процессы в нужное время.
at
Для запуска одной или более команд в заранее определенное время используется команда at. В этой команде вы можете определить время и дату запуска той или иной команды. Команда at требует, по меньшей мере, двух параметров – время выполнения программы и запускаемую программу с ее параметрами запуска.
Приведенный ниже пример запустит команду на выполнение в 01:01. Для этого введите все, приведенное ниже, с терминала, завершая ввод каждой строки нажатием клавиши <Enter> и по окончании ввода всей команды – <Ctrl>+<D> для ее завершения.at 1:01
Is
echo "Time is 1:01"Помимо времени, в команде at может быть также определена и дата запуска программы на выполнение.
Пользователь root может без ограничения применять практически любые команды. Для обычных пользователей права доступа к команде at определяются файлами /etc/at.allow и /etc/at.deny. В файле /etc/at.allow содержится список тех, кому разрешено использовать команду at, а в файле /etc/at.deny находится список тех, кому ее выполнять запрещено.
batch
Команда batch в принципе аналогична команде at. Более того, batch представляет собой псевдоним команды at – ъ. Для чего необходима эта команда? Представьте, вы хотите запустить резервное копирование вечером. Однако в это время система очень занята, и выполнение резервирования системы практически парализует ее работу. Для этого и существует команда batch – ее использование позволяет операционной системе самой решить, когда наступает подходящий момент для запуска задачи в то время, когда система не сильно загружена.
Формат команды batch представляет собой просто список команд для выполнения, следующих в строках за командой; заканчивается список комбинацией клавиш <Ctrl>+<D>. Можно также поместить список команд в файл и перенаправить его на стандартный ввод команды batch.
cron
Cron – это программа, выполняющая задания по расписанию, но, в отличие от команды at, она позволяет выполнять задания неоднократно. Вы определяете времена и даты, когда должна запускаться та или иная программа. Времена и даты могут определяться в минутах, часах, днях месяца, месяцах года и днях недели.
Программа cron запускается один раз при загрузке системы. При запуске cron проверяет очередь заданий at и задания пользователей в файлах crontab. Если для запуска не было найдено заданий – следующую проверку cron произведет через минуту.
Для создания списка задач для программы cron используется команда crontab. Для каждого пользователя с помощью этой команды создается его собственный crontab-файл со списком заданий, имеющий то же имя, что и имя пользователя.
Каждая строка в файле crontab содержит шаблон времени и команду. Команда выполняется тогда, когда текущее время соответствует приведенному шаблону. Шаблон состоит из пяти частей, разделенных пробелами или символами табуляции, и имеет вид:минуты часы день_месяца месяц день_недели задание
Первые пять полей представляют собой шаблон времени и обязательно должны присутствовать в файле. Для того чтобы программа сгоп игнорировала поле шаблона времени, поставьте в нем символ звездочки (*).
Например, шаблон ю 01 01 * * говорит о том, что команда должна быть запущена в десять минут второго каждого первого числа любого (*) месяца, каким бы днем недели оно ни было. В табл. 26.3 приведено описание полей таблицы задания сгоп.
Таблица 26.3. Параметры таблицы заданий программы cronНиже приведены несколько команд, исполняемых программой сгоп:
• команда запускается в 1 минуту каждого часа:01 * * * * /usr/bin/script
• команда запускается каждый день в 8:20:
20 8 * * * /usr/bin/script
• команда запускается в 6 часов каждое воскресенье:
00 6 * * 0 /usr/bin/script
• команда запускается в 7:40 каждое первое число:
40 7 1 * * /usr/bin/script
Для создания и редактирования файла заданий для программы сгоп используется команда crontab. Прямое редактирование файла заданий не допускается.
Команда crontab имеет следующие параметры командной строки:
• -е – позволяет редактировать компоненты файла (при этом вызывается редактор, определенный в переменной EDITOR);