Инструменты пользователя

Инструменты сайта


komandy_upravlenija_zadanijami

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

komandy_upravlenija_zadanijami [2012/04/21 11:39] (текущий)
Строка 1: Строка 1:
 +====== Команды управления заданиями ======
 +Оригинал статьи на [[http://​www.ln.com.ua/​~openxs/​projects/​man/​uman121.html|www.ln.com.ua]]
  
 +===== Управление заданиями =====
 +
 +Управление заданиями - это механизм для отслеживания процессов,​ которые порождаются из текущего сеанса работы с терминалом. Можно запустить любое число заданий. Они могут работать,​ завершиться или находиться в других состояниях. Для управления заданиями можно использовать несколько команд,​ чтобы проследить результаты их работы или потребовать от системы уведомления об окончании задания.
 +===== Запуск задания в фоновом режиме =====
 +
 +Фоновый режим позволяет продолжить использование сеанса работы с терминалом,​ пока выполняется команда. Для запуска команды в фоновом режиме,​ достаточно к команде добавить символ амперсанд (&). Командный интерпретатор вернет номер задания и идентификатор процесса:​
 +<​code>​
 +$ make &
 +[2] 254
 +$</​code>​
 +
 +Если задание не требует от пользователя ввода, оно продолжает свою работу до полного завершения. Если команде нужен ввод, она переходит в состояние ожидания,​ на экран выводится соответствующее уведомление,​ которое выглядит примерно так:
 +
 +  [1] + Suspended (tty input) programm 0
 +
 +В данном случае в ожидании ввода приостановилось выполнение программы programm. Пользователю необходимо перевести из фонового режима в привилегированный и выполнить ввод.<​note important>​Если вы хотите,​ чтобы после вашего выхода из системы(консоли) процесс в фоновом режиме продолжал выполняться,​ то вам необходимо использовать команду [[nohup]].</​note>​
 +===== Просмотр состояния заданий =====
 +
 +С помощью команды jobs пользователь имеет возможность просмотреть состояние своих заданий и получит список всех заданий запущенных в сеансе работы с терминалом.
 +<​code>​
 +$ jobs
 +[1]   ​Stopped (user) ​         du
 +[2]-  Stopped (user) ​         du -a /​home/​intdbi
 +[3]+  Stopped (user) ​         du -r /​home/​intdbi
 +$</​code>​
 +
 +Команда jobs принимает два флага. Флаг -l включает идентификатор процесса с номером задания.
 +<​code>​
 +$ jobs -l
 +[1]   1351 Stopped (user) ​         du
 +[2]-  1381 Stopped (user) ​         du -a /​home/​intdbi
 +[3]+  1383 Stopped (user) ​         du -r /​home/​intdbi
 +$</​code>​
 +
 +Флаг -р заменяет номер задания на идентификатор процесса.
 +<​code>​
 +$ jobs -p
 +1351
 +1381
 +1383
 +$</​code>​
 +
 +Идентификатор процесса может использоваться при обращении к команде ps.
 +===== Номера заданий =====
 +
 +Номер задания позволяет командному интерпретатору наблюдать за процессами. Его можно рассматривать как головной элемент группы процессов,​ поскольку пользовательское задание порождает любые команды либо в конвейере,​ либо, как подзадания.
 +===== Перевод задания в привилегированный режим =====
 +
 +Команда fg переводит задания в привилегированный режим. При наличии приостановленного задания,​ его можно сделать привилегированным (перевести на передний план) с помощью команды fg #​номер_задания (или fg номер_задания в bash). После этого задание либо выведет на экран сообщение о том, что ему нужно от терминала,​ либо будет принимать ожидаемый ввод. Переведя задание в привилегированный режим, можно приостановить его выполнение,​ нажав комбинацию калвиш Ctrl-Z, и заняться им позже.
 +
 +Любое задание из списка,​ предоставленного командой jobs, доступно,​ если пользователь захочет сделать его привилегированным,​ даже в том случае,​ когда оно уже работает в фоновом режиме. Если в этом списке приведено только одно задание,​ то при использовании команды fg пользователю не нужно задавать его номер. Если номер задания не задан, предполагается текущее задание.
 +===== Перевод задания в фоновый режим =====
 +
 +С помощью команды bg можно возобновить в фоновом режиме работу приостановленного или остановленного задания. Для этого нужно указать соответствующий номер задания,​ после чего оно перейдет в фоновый режим, и будет работать до своего завершения,​ или пока ему снова не потребуется ввод с терминала.
 +===== Команда ожидания завершения процесса =====
 +
 +Это последняя существенная команда управления заданиями. При вводе wait приостанавливается работа командного интерпретатора до тех пор, пока не будут завершены все фоновые задания. Сюда входят и любые остановленные задания,​ поэтому при вводе wait стоит убедиться,​ что все фоновые задания работают. Команда wait может также принимать в качестве параметра номер задания. В этом случае командный интерпретатор приостанавливается до тех пор, пока не завершится выполнение указанного задания.
загрузка...
komandy_upravlenija_zadanijami.txt · Последние изменения: 2012/04/21 11:39 (внешнее изменение)