Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Приоритетный и фоновый режимы




Программу можно запустить как фоновый процесс (указать в строке после запускаемой команды символ &) или перевести задачу переднего плана (foreground) в фоновый режим (с помощью команды bg). При работе программы в качестве фонового процесса вы можете продолжать вводить команды и работать с другими процессами.

Для примера рассмотрим команду yes:

# yes

(команда запушена в «приоритетном режиме»)

Результатом работы этой команды будет длинный столбец символов y в левом краю экрана, бегущий быстрее, чем вы можете следить за этим.

Можно приостановить выполнение команды комбинацией клавиш Ctrl+Z. Процесс приостановил свое выполнение, но не прекратился. При этом на экране появится сообщение:

[1]+ Stopped yes

Давайте разберем его по частям:

[1] - это номер задачи, он используется когда нам надо сослаться конкретно на эту задачу. Если вы запускаете некоторый процесс в фоновом режиме, то shell выводит PID запущенного процесса и номер задачи (при выполнении л/р их желательно запоминать).

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

Stopped - означает, что процесс приостановлен. Процесс не «умер», но сейчас он не выполняется. Linux хранит его в особом приостановленном состоянии, готовым продолжить работу, если будет дана соответствующая команда.

yes - имя команды, которое было введено в командной строке при запуске программы.

Теперь, пока процесс находится в режиме ожидания, мы можем продолжить его выполнение либо в фоновом режиме, либо в приоритетном режиме, либо вообще уничтожить этот процесс. Рассмотрим каждый конкретный случай:

· bg [%номер задачи]–чтобы перевести процесс в фоновый режим;

· fg [%номер задачи]– чтобы перевести процесс в приоритетный режим;

· kill [%номер задачи]– чтобы убить процесс.

Во всех рассмотренных командах [%номер задачи] – необязательный параметр, и он необходим, когда вы работаете с не текущим процессом. Кроме того, уничтожить процесс можно также, если запустить этот процесс в приоритетном режиме (с помощью команды fg), а затем – нажатием комбинации клавиш Ctrl+C – уничтожить его.

Пример 1

Запустим команду yes:

#yes

Приостановим её выполнение:

Ctrl+Z

На экране появится сообщение:

[1]+ Stopped yes

Это означает, что данный приостановленный процесс является текущим с номером 1.

Продолжим выполнение этого процесса в фоновом режиме:

#bg %1

или, в данном случае:

#bg (так как процесс текущий)

Убедимся в выполнении этого процесса с помощью команды jobs:

[1]+ Running yes

Пример 2

Уничтожим процесс с номером 3:

#kill %3

Возможно, на экране появится сообщение вида:

[3]+ Stopped <название команды>

Это сообщение о том что, опять таки, процесс был приостановлен, может ввести в заблуждение. Чтобы выяснить, «жив» ли еще процесс (т.е. исполняется или находится в приостановленном состоянии), напишите в командной строке:

#jobs

[3]+ Terminated yes

Это означает, что процесс был завершен. В случае повторного ввода команды jobs – процесс с номером 3 больше упоминаться не будет. Возможно, что команда jobs не выдаст никакого сообщения. Это означает, что ни один из процессов не запущен в фоновом режиме.

 

Обобщим то, что вы должны были узнать в этом разделе:

[ctrl-z] – Такая комбинация клавиш вызывает приостановку задачи работающей в приоритетном режиме, хотя некоторые программы могут игнорировать её. После того, как задача приостановлена, она может исполняться в фоновом режиме.

[fg] [%номер задачи] – Эта встроенная команда shell' а устанавливает задачу в приоритетный режим. Чтобы понять, какая задача будет установлена в приоритетный режим по умолчанию, напишите jobs, и найдите задачу с «+».

[&] – Когда & добавляется в конец командной строки, это заставляет команду исполняться в фоновом режиме.

[bg] [%номер задачи] – Это встроенная команда shell'а, которая устанавливает задачу в фоновый режим. Чтобы понять, какая задача будет установлена по умолчанию, наберите jobs, и найдите задачу с «+».

[kill] [%номер задачи] – Эта команда завершает задачу работающую в фоновом режиме или приостановленную. Вместо параметра [%номер задачи] можно использовать PID процесса (его можно увидеть, например, при запуске процесса в фоновый режим)

[jobs] – Эта команда shell 'а просто перечисляет информацию о задачах, которые исполняются или приостановлены. Иногда, она также сообщают о процессах, которые благополучно завершились или были завершены.

[ctrl-c] – Это общий символ прерывания. Обычно, если вы нажимаете эту комбинацию клавиш, когда программа исполняется в приоритетном режиме, то уничтожаете программу (иногда для этого надо несколько попыток). Однако не все программы будут реагировать на этот способ прерывания.

 





Поделиться с друзьями:


Дата добавления: 2016-12-06; Мы поможем в написании ваших работ!; просмотров: 690 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Надо любить жизнь больше, чем смысл жизни. © Федор Достоевский
==> читать все изречения...

2376 - | 2051 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.