Глава 11. Управление процессами

Содержание
11.1. Перевод в фоновый режим
11.2. Перевод в приоритетный режим
11.3. ps
11.4. kill
11.5. top

Каждая выполняемая программа называется процессом. Эти процессы варьируются от вещей типа системы X Window до системных программ (демонов), которые запускаются во время загрузки системы. Каждый процесс выполняется от имени какого-либо пользователя. Процессы, запускаемые во время загрузки, обычно выполняются от имени root'а или nobody. Процессы, запускаемые вами, выполняются с вашим правами. Процессы, запускаемые другим пользователями, работают соответственно с правами этих пользователей.

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

11.1. Перевод в фоновый режим

Программы, запускаемые из командной строки, начинают работать в приоритетном режиме (foreground). Это позволяет вам видеть данные, выводимые программой, и взаимодействовать с ней. Однако в некоторых случаях вам хотелось бы, чтобы программа работала, не захватывая полностью ваш терминал. Это называется работой программы в фоновом режиме (background), и для осуществления этой задачи существует несколько способов.

Первым способом перевода процесса в фоновый режим является добавление в командную строку амперсанда при запуске программы. Например, допустим, что вы хотите воспользоваться консольным mp3-плеером amp для воспроизведения mp3-файлов, однако в то же время вам нужно работать в том же самом терминале. Следующая команда запустит amp в фоновом режиме:

% amp *.mp3 &

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

Другим способом перевода процесса в фоновый режим является осуществление этого во время работы процесса. Сначала запустите программу. Во время её работы нажмите Control+z. При этом процесс будет приостановлен. Иными словами приостановленный процесс “ставится на паузу”. Он мгновенно прекращает свою работу, но может быть вновь запущен в любое время. После того, как вы приостановили процесс, вы возвращаетесь в командную строку. Затем вы можете перевести процесс в фоновый режим, набрав:

% bg

При этом приостановленный процесс вновь продолжит свою работу, но уже в фоновом режиме.