IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [143]
    Безопасность IT [404]
    Блоки питания, Power Banks, зарядки... [508]
    Видеорегистраторы [186]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [627]
    Измерительная техника, инструменты [437]
    Накопители данных [232]
    Нетбуки, Ноутбуки, Ультрабуки [689]
    Мультиварки, блендеры и не только... [162]
    Планшеты [764]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [360]
    Сети, сетевые технологии, оборудование... [273]
    Смартфоны [4959]
    Фотокамеры, объективы, искусство фотографии.. [541]
    Умный дом [50]
    Электронные книги [101]
    CB, LPD, PMR- связь... [170]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [3981]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1120]
    Smart TV, UltraHD, приставки, проекторы... [415]
    Smart Watch [268]
    Sound: наушники, плееры, усилители... [618]
    Windows 10... [301]
    Windows 11 [37]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1347
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 87
    Гостей: 87
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2015 » Апрель » 22 » Администрирование систем Linux. Фоновые задачи
    14:49
    Администрирование систем Linux. Фоновые задачи

    Администрирование систем Linux. Фоновые задачи

    Оригинал: Background jobs
    Автор: Paul Cobbaut
    Дата публикации: 12 марта 2015 г.
    Перевод: A. Панин
    Дата перевода: 28 марта 2015 г.

    Глава 3. Фоновые задачи

    3.1. Фоновые процессы

    3.1.1. Команда jobs

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

     

    root@rhel53 ~# jobs
    root@rhel53 ~#
    

     

    Данная команда jobs будет использоваться несколько раз на протяжении данной главы.

    3.1.2. Сочетание клавиш Control-Z

    Исполнение некоторых процессов может быть остановлено с помощью комбинации клавиш Ctrl-Z. Данная комбинация клавиш позволяет отправить сигнал SIGSTOP ядру Linux, что приведет к остановке исполнения процесса.

    В том случае, если данная комбинация клавиш используется при работе с текстовым редактором vi(m), процесс текстового редактора vi(m) продолжает исполняться в фоновом режиме. Процесс vi(m), исполняющийся в фоновом режиме, может быть обнаружен в выводе команды jobs.

     

    [paul@RHEL4a ~]$ vi procdemo.txt
    [5]+ Stopped vim procdemo.txt
    [paul@RHEL4a ~]$ jobs
    [5]+ Stopped vim procdemo.txt
    

     

    3.1.3. Амперсанд (&)

    Процессы, которые запускаются в фоновом режиме благодаря символу &, размещенному в конце строки команды, также отображаются в выводе команды jobs.

     

    [paul@RHEL4a ~]$ find / > allfiles.txt 2> /dev/null &
    [6] 5230
    [paul@RHEL4a ~]$ jobs
    [5]+ Stopped vim procdemo.txt
    [6]- Running find / >allfiles.txt 2>/dev/null &
    [paul@RHEL4a ~]$
    

     

    3.1.4. Команда jobs -p

    Команда jobs поддерживает интересный параметр -p, предназначенный для вывода идентификаторов процессов, исполняющихся в фоновом режиме.

     

    [paul@RHEL4b ~]$ sleep 500 &
    [1] 4902
    [paul@RHEL4b ~]$ sleep 400 &
    [2] 4903
    [paul@RHEL4b ~]$ jobs -p
    4902
    4903
    [paul@RHEL4b ~]$ ps `jobs -p`
     PID TTY STAT TIME COMMAND
     4902 pts/0 S 0:00 sleep 500
     4903 pts/0 S 0:00 sleep 400
    [paul@RHEL4b ~]$
    

     

    3.1.5. Команда fg

    Вызов команды fg позволяет перевести процесс из фонового режима в текущую командную оболочку. Номер фоновой задачи для переноса в текущую командную оболочку является параметром команды fg.

    [paul@RHEL5 ~]$ jobs

     

    [1] Running sleep 1000 &
    [2]- Running sleep 1000 &
    [3]+ Running sleep 2000 &
    [paul@RHEL5 ~]$ fg 3
    sleep 2000
    

     

    3.1.6. Команда bg

    Задачи из фонового режима, исполнение которых было приостановлено, могут быть снова запущены в фоновом режиме с помощью команды bg. Команда bg осуществляет отправку сигнала SIGCONT соответствующему процессу.

    Ниже приведен пример запуска процесса sleep в фоновом режиме (исполнение которого было остановлено с помощью сочетания клавиш Ctrl-Z) с последующей повторной активацией этого процесса в фоновом режиме с помощью команды bg.

     

    [paul@RHEL5 ~]$ jobs
    [paul@RHEL5 ~]$ sleep 5000 &
    [1] 6702
    [paul@RHEL5 ~]$ sleep 3000
    
    [2]+ Stopped sleep 3000
    [paul@RHEL5 ~]$ jobs
    [1]- Running sleep 5000 &
    [2]+ Stopped sleep 3000
    [paul@RHEL5 ~]$ bg 2
    [2]+ sleep 3000 &
    [paul@RHEL5 ~]$ jobs
    [1]- Running sleep 5000 &
    [2]+ Running sleep 3000 &
    [paul@RHEL5 ~]$ 
    

     

    3.2. Практическое задание: фоновые процессы

     

    1. Используйте команду jobs, чтобы удостовериться в том, что никакие процессы не выполняются в фоновом режиме.

     

    2. Используйте текстовый редактор vi для создания небольшого текстового файла. Переведите процесс vi в фоновый режим и остановите его исполнение.

     

    3. Используйте команду jobs, чтобы убедиться в том, что исполнение процесса vi в фоновом режиме остановлено.

     

    4. Выполните команду find / > allfiles.txt 2>/dev/null в фоновом режиме. Остановите исполнение этой команды в фоновом режиме перед тем, как будет закончен обход файловой системы.

     

    5. Запустите два процесса sleep с длительным периодом ожидания в фоновом режиме.

     

    6. Выведите информацию обо всех задачах, исполняющихся в фоновом режиме.

     

    7. Используйте утилиту kill для остановки исполнения одного из процессов с именем sleep.

     

    8. Инициируйте продолжение исполнения процесса find в фоновом режиме (убедитесь в том, что исполнение продолжилось).

     

    9. Переведите один из процессов с именем sleep назад в текущую командную оболочку.

     

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

     

    [paul@RHEL4b ~]$ echo $$ $PPID
    4224 4223
    [paul@RHEL4b ~]$ bash -c "echo $$ $PPID"
    4224 4223
    [paul@RHEL4b ~]$ bash -c 'echo $$ $PPID'
    5059 4224
    [paul@RHEL4b ~]$ bash -c `echo $$ $PPID`
    4223: 4224: команда не найдена...

     

     

     

    3.3. Корректная процедура выполнения практического задания: фоновые процессы

     

    1. Используйте команду jobs, чтобы удостовериться в том, что никакие процессы не выполняются в фоновом режиме.

    jobs (возможно одни из процессов cat все еще исполняется?)

    2. Используйте текстовый редактор vi для создания небольшого текстового файла. Переведите процесс vi в фоновый режим и остановите его исполнение.

     

    vi text.txt

     

    (в процессе работы с vi нажмите ctrl-z)

    3. Используйте команду jobs, чтобы убедиться в том, что исполнение процесса vi в фоновом режиме остановлено.

     

    [paul@rhel53 ~]$ jobs
    [1]+ Stopped vim text.txt

     

    4. Выполните команду find / > allfiles.txt 2>/dev/null в фоновом режиме. Остановите исполнение этой команды в фоновом режиме перед тем, как будет закончен обход файловой системы.

     

    [paul@rhel53 ~]$ find / > allfiles.txt 2>/dev/null

     

    (нажмите ctrl-z)

     

    [2]+ Stopped find / > allfiles.txt 2> /dev/null

     

    5. Запустите два процесса sleep с длительным периодом ожидания в фоновом режиме.

     

    sleep 4000 & ; sleep 5000 &

     

    6. Выведите информацию обо всех задачах, исполняющихся в фоновом режиме.

     

    [paul@rhel53 ~]$ jobs
    [1]- Stopped vim text.txt
    [2]+ Stopped find / > allfiles.txt 2> /dev/null
    [3] Running sleep 4000 &
    [4] Running sleep 5000 &

     

    7. Используйте утилиту kill для остановки исполнения одного из процессов с именем sleep.

     

    [paul@rhel53 ~]$ kill -SIGSTOP 4519
    [paul@rhel53 ~]$ jobs
    [1] Stopped vim text.txt
    [2]- Stopped find / > allfiles.txt 2> /dev/null
    [3] Running sleep 4000 &
    [4]+ Stopped sleep 5000

     

    8. Инициируйте продолжение исполнения процесса find в фоновом режиме (убедитесь в том, что исполнение продолжилось).

    bg 2 (проверьте состояние задачи с указанным идентификатором в списке фоновых задач)

    9. Переведите один из процессов с именем sleep назад в текущую командную оболочку.

    fg 3 (и снова проверьте состояние задачи с указанным идентификатором в списке фоновых задач)

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

     

    [paul@RHEL4b ~]$ echo $$ $PPID
    4224 4223
    [paul@RHEL4b ~]$ bash -c "echo $$ $PPID"
    4224 4223
    [paul@RHEL4b ~]$ bash -c 'echo $$ $PPID'
    5059 4224
    [paul@RHEL4b ~]$ bash -c `echo $$ $PPID`
    4223: 4224: команда не найдена...

     

    Текущая командная оболочка bash будет заменять имена переменных $$ и $PPID при разборе строки команды перед исполнением команды echo.

     

    [paul@RHEL4b ~]$ echo $$ $PPID
    4224 4223

     

    Теперь имена переменных экранированы с помощью двойных кавычек, но текущая командная оболочка bash все также будет заменять имена переменных $$ и $PPID при разборе строки команды перед исполнением команды bash -c.

     

    [paul@RHEL4b ~]$ bash -c "echo $$ $PPID"
    4224 4223

     

    А теперь имена переменных экранированы с помощью одинарных кавычек. Текущая командная оболочка bash не будет заменять имена переменных $$ и $PPID. Команда bash -c будет выполнена перед заменой имен переменных на их значения. Вторая же командная оболочка bash будет осуществлять замену имен переменных $$ и $PPID на их значения.

     

    [paul@RHEL4b ~]$ bash -c 'echo $$ $PPID'
    5059 4224

     

    При использовании обратных кавычек командная оболочка все также будет осуществлять замену имен переменных на их значения перед исполнением встроенной команды echo. Результатом исполнения этой команды echo будут являться идентификаторы двух процессов. Эти идентификаторы будут переданы команде bash -c. Но эти два числа не являются корректными командами!

     

    [paul@RHEL4b ~]$ bash -c `echo $$ $PPID`
    4223: 4224: команда не найдена...

     

    http://rus-linux.net/MyLDP/BOOKS/LSA/ch03.html

    Категория: Linux и не только | Просмотров: 587 | Добавил: laptop | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024