ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
2.11.4 Остановка и возобновление работыЕсть другой способ перевести работу в фоновый режим. Вы можете начать работу нормально (в режиме переднего плана), остановить работу и продолжить в фоновом режиме.Сначала начнем работу "нормально": Поскольку опять работа выполняется на переднем плане, вы не получите обратно на экран подсказку shell./home/larry# yes > /dev/null Теперь, вместо
того, чтобы прерывать работу с помощью Пока работа остановлена, она просто не выполняется. На нее не тратится время процессора. Но вы всегда можете возобновить работу, и она продолжится как ни в чем не бывало./home/larry# yes > /dev/null [ctrl-Z] [1]+ Stopped yes >/dev/null /home/larry# Для возобновления работы в режиме переднего плана используйте команду fg (``foreground'' - передний план). Shell снова выдаст на экран имя команды, чтобы вы могли проконтролировать, какую работу вы активизировали в режиме переднего плана. Вновь остановите работу с помощью/home/larry# fg yes >/dev/null И мы получили назад подсказку. Команда jobs сообщит, что команда yes действительно выполняется, и мы можем снова ее убить с помощью команды kill, как мы это уже делали./home/larry# bg [1]+ yes >/dev/null & /home/larry# Как теперь остановить
работу? Использование Существует большая разница между фоновой работой и остановленной. Остановленная работа не выполняется и не использует время процессора, да и никакой работы, честно говоря, в этот момент не делает (но занимает память, хотя по воле своппинга может оказаться на диске). Работа в фоновом режиме и выполняется, и занимает память. Она может даже выводить что-то на экран, хотя это может раздражать вас, когда вы работаете над чем-то другим. Например, если вы использовали команду: без перенаправления stdout в /dev/null, поток "y" будет выводиться на экран без возможности прервать это (вы не сможете использовать/home/larry# yes & Еще одно замечание. Команды fg и bg обычно переводят на передний план или в фоновый режим работы, которые были остановлены последними (что определяется символом ``+'' после номера работы, это когда вы используете команду jobs). Если вы выполняете много работ одновременно, вы можете перевести на передний план или, наоборот, в фоновый режим конкретную работу заданием идентификатора работы в качестве аргумента команд fg или bg, как в (перевод на передний план работы номер 2) или/home/larry# fg %2 (перевод в фон работы номер 3)./home/larry# bg %3 Для этих команд нельзя использовать идентификаторы процессов. Кроме того, использование только номеров работ, как в Помните, что управление работами, это свойство shell. Команды fg, bg и jobs - внутренние команды shell. Если по какой-то причине вы используете shell, который не поддерживает управление работами, там вы не найдете этих команд./home/larry# %2 эквивалентно /home/larry# fg %2 В дополнение
к этому, есть некоторые аспекты управления работами, которые различаются
в Bash и Tcsh. Некоторые оболочки не имеют управления работами, хотя большинство
оболочек Linux имеют такую возможность.
|