kill %n
Параметр n нужно заменить на номер процесса. Например, чтобы завершить работу фоновой программы man, нужно выполнить:
kill %1
Затем сразу же запустите команду jobs
. Вы должны увидеть на экране сообщение типа:
[1] + Terminated man ls
После повторного вызова команды jobs
программы man больше не будет.
Если вы хотите завершить работу процесса, который запущен не вами, но вы знаете его PID, то нужно выполнить команду:
kill n
Знак процента в этом случае не нужен. Тогда команда kill
ищет процесс, у которого PID равен указанному числу n
и посылает сигнал для завершения.
3.4.3. Просмотр процессов
С помощью команды jobs
вы можете увидеть только запущенные вами процессы. Чтобы полюбопытствовать, чем занимаются остальные пользователи в системе, нужно выполнить команду ps
. Если запустить ее без параметров, то результат на экране будет примерно следующий:
PID TTY TIME CMD
1652 tty1 00:00:00 bash
1741 tty1 00:00:00 ps
Перед нами четыре колонки, которые показывают идентификатор процесса, терминал, на котором запущена программа, время работы и выполняемая команда.
Это далеко не полный список. Чтобы увидеть все процессы, следует выполнить команду ps
с ключом -a
. Но и это еще не весь перечень, потому что отобразятся только программы своего терминала. Если требуется полный список процессов, запущенных со всех терминалов, то нужно добавить ключ -х
. Помимо этого, вы можете пожелать увидеть имя пользователя, под которым работает процесс, для этого добавьте ключ -u
. В итоге, исчерпывающую информацию можно получить, выполнив команду:
ps -axu
Результат работы будет таков:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 1376 452 ? S 14:25 0:05 init
root 2 0.0 0.0 0 0 ? SW 14:25 0:00 [keventd]
root 3 0.0 0.0 0 0 ? SW 14:25 0:00 [kapmd]
root 5 0.0 0.0 0 0 ? SW 14:25 0:00 [kswapd]
root 6 0.0 0.0 0 0 ? SW 14:25 0:00 [bdflush]
root 7 0.0 0.0 0 0 ? SW 14:25 0:00 [kupdated]
root 530 0.0 0.1 1372 436 ? S 14:25 0:00 klogd -x
rpc 550 0.0 0.2 1516 540 ? S 14:25 0:00 portmap
Колонка STAT
показывает состояние процесса. Здесь можно встретить следующие коды:
□ S
(Sleeping) — спящий, это нормальное состояние для сервисов, которые просыпаются только на редкие запросы клиентов;
□ R
(Runnable) — исполняемый в данный момент;
□ T
(Traced or Stopped) — в состоянии отладки или остановлен;
□ Z
(Zombied) — зависший. Такие можно смело убивать;
□ W
— не имеет резидентных страниц;
□ <
— обладает высоким приоритетом;
□ N
— имеет низкий приоритет.
Это основные состояния, которые вы можете увидеть у процессов в своей системе.
Если в колонке стоит вопросительный знак, то это означает, что процесс запущен еще на этапе загрузки системы и не принадлежит какому-либо терминалу.
Это всего лишь небольшой фрагмент файла. В реально работающей системе процессов очень много, и даже при минимальном количестве запущенных сервисов может не хватить одного экрана для отображения всех. Я люблю сохранять результат работы в текстовый файл, а потом спокойно изучать его в любом редакторе. Для этого я выполняю команду:
ps -axu >> ps.txt
Чтобы увидеть, чем в данный момент занимаются другие пользователи, можно выполнить команду w
. В результате вы получите на экране приблизительно такую картину:
10:59am up 37 min, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 10:24am 0.00s 0.82s 0.05s w
flenov tty2 - 10:39am 8:13 0.85s 0.03s grotty
Из данного примера понятно, что в системе находятся два пользователя. На первом терминале работает пользователь root
, а на втором — flenov
. Очень удобно определять по списку, когда пользователь вошел в систему (колонка LOGIN@
) и что делает в данный момент (колонка WHAT
).
Посмотрите на столбцы JCPU и PCPU, по ним можно оценить загрузку системы. Если ваш компьютер начал работать слишком медленно, то можно увидеть, какой процесс отнимает много процессорного времени.
Команда ps
выводит статическую информацию. Для наблюдения за нагрузкой системы удобнее использовать программу top. Она отображает список процессов, отсортированный по убыванию в зависимости от нагрузки (рис. 3.4). Таким образом, вы можете увидеть, какой сервис или программа отнимает драгоценные ресурсы и не дает нормально работать с компьютером.
Рис. 3.4. Результат работы программы top
Если мой компьютер начинает "тормозить", или работа замедляется через определенные промежутки времени, то я запускаю top в отдельном терминале и по мере необходимости переключаюсь на него, чтобы увидеть нагрузку процессов.
Вверху окна выводится количество пользователей, общая загрузка системы и статистика процессов: общее количество, спящие, выполняемые, зависшие и остановленные.
Помимо этого, можно увидеть краткий отчет по использованию памяти: количество занятой и свободной оперативной памяти и размер раздела подкачки. В моем случае в компьютере установлено 256 Мбайт памяти, и из них свободно только 7 Мбайт, а раздел подкачки пока не используется. Такое малое количество свободной памяти говорит о том, что не помешало бы ее нарастить. Чем меньше компьютер использует swap-файл, тем лучше он работает. Конечно, пока что этот файл практически не используется, но если перейти в графический режим и запустить пару мощных приложений, то и Swap-раздела не хватит.
Программа top будет выводить информацию о загрузке процессора с определенным интервалом времени. Для выхода из программы нажмите комбинацию клавиш <Ctrl>+<C>.
3.5. Планирование задач
Очень часто возникает необходимость выполнить какую-либо операцию в определенное время. Раньше я надеялся на свою память и вручную выполнял команды. Но когда несколько раз произошла осечка — просто был слишком занят, чтобы обратить внимание на часы и выполнить нужные действия, — я переложил задачу по слежению за временем на компьютер. И действительно, зачем держать в голове то, что компьютер сделает лучше и точно в указанный срок?
А что если необходимо выполнять какие-то простые, но трудоемкие задачи после рабочего дня? Неужели придется оставаться на службе на всю ночь? Конечно же, нет. Компьютер может сам все сделать без вмешательства человека, главное правильно ему рассказать, что и когда надо выполнить.
3.5.1. Формирование задания
Самый простой, надежный и любимый хакерами способ решить проблему запуска в определенное время — это команда at
. В простейшем случае формат ее вызова следующий: