Чтение онлайн

на главную - закладки

Жанры

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

3.4.1. Смена режима

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

man ls &

В ответ на это вы не увидите файл помощи, а на экране появится только строка:

[1] 2802

После этого терминал снова готов работать, потому что центральный процесс запустил команду

man ls
в фоновом режиме, и свободен для выполнения новых директив.

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

[1] 2805

В квадратных скобках опять число 1, а вот следующее значение отличается от выведенного на первом терминале и будет всегда другим. Это PID (Process ID, идентификатор процесса) созданного процесса, является уникальным для всех пользователей. Это значит, что если вы запустили процесс с номером 2802, то другой пользователь никогда не увидит этого идентификатора. Его PID будет другим.

Запомните идентификаторы, которые вы увидели, впоследствии они пригодятся.

Чтобы узнать, какие процессы у вас запущены, выполните команду

jobs
. В ответ на это вы получите:

[1] + Stopped man ls

В данном случае мы видим, что процесс с номером [1] загружен в память, и состояние команды

man ls
Stopped
(остановлен).

Какой смысл в том, что мы отправили просмотр файла помощи в фоновый режим? Я не зря выбрал эту команду, потому что в этом есть резон. Вы в любой момент можете сделать фоновый режим основным. Для этого необходимо ввести команду

fg %1
, где число 1 указывает номер вашего процесса, который вы видели в квадратных скобках. Попробуйте сейчас выполнить эту директиву, и перед вами откроется запущенная программа man, отображающая файл помощи по использованию команды
ls
.

Раз процесс можно сделать центральным, значит можно поступить и наоборот. Чтобы вернуть процесс в фоновый режим, нажмите клавиши <Ctrl>+<Z>. Перед вами снова появится командная строка. Выполните команду

jobs
, чтобы убедиться, что команда
man ls
все еще работает.

Если в программе есть возможность выполнять системные команды, то вместо сочетания клавиш <Ctrl>+<Z> можно выполнить команду

bg %1
. Число 1 — это снова номер процесса.

3.4.2. Остановка процессов

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

man имяпрограммы
.

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

чаще всего имеют вид:

имясервиса stop

Иногда процессы зависают. Да, такие ситуации бывают и в ОС Linux. Центральный процесс может быть снят с помощью комбинации клавиш <Ctrl>+<C> или <Ctrl>+<Break>. Но этот метод срабатывает не во всех случаях и не для всех программ. Если не удается завершить процесс по- хорошему, то можно поступить иначе. Для этого существует команда

kill
. Чтобы отключить процесс по личному идентификатору (тот, что мы видели в квадратных скобках), используйте команду:

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]

Поделиться:
Популярные книги

Дракон с подарком

Суббота Светлана
3. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
6.62
рейтинг книги
Дракон с подарком

Бывшие. Война в академии магии

Берг Александра
2. Измены
Любовные романы:
любовно-фантастические романы
7.00
рейтинг книги
Бывшие. Война в академии магии

Мастер клинков. Начало пути

Распопов Дмитрий Викторович
1. Мастер клинков
Фантастика:
фэнтези
9.16
рейтинг книги
Мастер клинков. Начало пути

Имя нам Легион. Том 8

Дорничев Дмитрий
8. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 8

Измена. Право на счастье

Вирго Софи
1. Чем закончится измена
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Право на счастье

Начальник милиции 2

Дамиров Рафаэль
2. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции 2

Камень. Книга 4

Минин Станислав
4. Камень
Фантастика:
боевая фантастика
7.77
рейтинг книги
Камень. Книга 4

Измена. Мой заклятый дракон

Марлин Юлия
Любовные романы:
любовно-фантастические романы
7.50
рейтинг книги
Измена. Мой заклятый дракон

Предатель. Цена ошибки

Кучер Ая
Измена
Любовные романы:
современные любовные романы
5.75
рейтинг книги
Предатель. Цена ошибки

Звездная Кровь. Изгой

Елисеев Алексей Станиславович
1. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой

Рождение победителя

Каменистый Артем
3. Девятый
Фантастика:
фэнтези
альтернативная история
9.07
рейтинг книги
Рождение победителя

Барону наплевать на правила

Ренгач Евгений
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Барону наплевать на правила

Камень. Книга шестая

Минин Станислав
6. Камень
Фантастика:
боевая фантастика
7.64
рейтинг книги
Камень. Книга шестая

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь