Автор: Пользователь скрыл имя, 30 Мая 2011 в 00:52, доклад
Операционная система Linux является достойным аналогом Windows. Если Вы до этого не работали в ее среде, то следует учесть несколько нюансов, свойственных только ей.
s или d - изменить интервалл обновления окна.
z -
цветное/черно-белое
n или
# - количество отображаемых
Можно отсортировать список процессов по использованию процессора (P), памяти (M), времени выполнения (T) и т.п.
Однако, есть и более полезные команды, которые позволяют управлять процессами в интерактивном режиме:
k - снять (kill) задачу. По этой команде будет запрошен идентификатор процесса (PID), после ввода которого, процесс будет завершен.
r -
изменить текущий приоритет
Для выхода из top нажмите q
Команда kill
Принудительное завершение процесса и изменение его приоритета можно выполнить и без команды top.
Процессы в Linux позволяют обмениваться "сигналами" с ядром и другими процессами. При получении сигнала процессом, управление запускает подпрограмму для его обработки. Если ее нет, то или ядру. Linux оперирует специальной командой kill. Именно она делает возможной опцию послать заданному процессу любой сигнал. Список сигналов можно получить по команде:
kill -l
В результате выполнения этой команды вы увидите список номеров и названий сигналов. Послать определенный сигнал выбранному процессу с помощью ввода в командной строке:
kill <-номерсигнала> номер PID выбранного процесса
Например, нам нужно завершить работу приложения Midnight Commander (mc).
Определим идентификатор процесса mc:
ps -A | grep mc
Пусть PID= 11597.
Посылаем сигнал SIGQUIT (номер 3):
kill -3 11597
После чего процесс mc обработает сигнал GIGQUIT и нормально завершится. Однако, если mc "завис", то, естественно, завершиться он не сможет, поскольку подпрограмма обработки сигнала SIGQUIT не получит управления. В таких случаях используется сигнал под номером 9 (SIGKILL), обрабатываемый ядром операционной системы, и принудительно завершающий указанный процесс:
kill -9 11597
Если в команде kill номер сигнала не указан, то тогда используется SIGKILL, предыдущую команду можно было ввести как kill PID:
kill 11597
Завершение процесса прерывает и запущенные в нем процессы.
Для завершения процесса по имени используется команда killall:
• killall mc - завершить процесс, в имени которого есть "mc";
• killall -u user - завершить процессы, порожденные пользователем user.
Команды nice и renice измененяют приоритет процессов. При запуске процесса, его приоритет задается значением родительского процесса, например, терминала xterm или командной оболочки shell. Команда nice позволяет запустить процесс с приоритетом, равным сумме родительского (например 8) и числа, задаваемого в качестве опции команды nice:
nice -<число> команда
nice -4 mc - запустит mc с приоритетом = 8+4=12
Команда renice используется для изменения приоритета уже запущенного процесса:
renice <число> -p PID
renice
4 -p 11597 - установить значение
После выполнения, renice выдаст строку результата:
11597: old priority 12, new priority 4 - старый приоритет 12, новый приоритет 4
Задание нулевого и отрицательного числа приоритета допустимо лишь для пользователя с правами root.