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

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [680]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [357]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [171]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

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

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

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

    COMPIZOMANIA

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

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

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

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

    eXTReMe Tracker

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


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2017 » Август » 23 » Все, что вам нужно знать о процессах в Linux
    05:43
    Все, что вам нужно знать о процессах в Linux

    Все, что вам нужно знать о процессах в Linux

    Оригинал: All You Need To Know About Processes in Linux [Comprehensive Guide]
    Автор: Aaron Kili
    Дата публикации: 31 марта 2017 года
    Перевод: А. Кривошей
    Дата перевода: август 2017 г.

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

    Типы процессов

    В Linux есть два основных типа процессов:

    Процессы переднего плана (также известны как интерактивные процессы) - они инициализируются и контролируются в терминальной сессии. Другими словами, для запуска таких процессов в системе должен находиться пользователь, они не запускаются автоматически как часть системных служб.
    Фоновые процессы (также известны как неинтерактивные/автоматические процессы) - не подключены к терминалу. Они не ждут ввода от пользователя.

    Что такое демоны

    Это специальные типы фоновых процессов, которые запускаются при загрузке системы и остаются запущенными в виде служб, они не завершаются. Демоны запускаются как системные задачи, спонтанно. Тем не менее, пользователь может контролировать их через процесс init.

    процессы в linux

    Создание процессов в Linux

    Обычно новый процесс создается уже существующим процессом, который делает в памяти свою точную копию. Дочерний процесс получает то же окружение, что и его родительский процесс, отличается только номер ID.

    Есть два распространенных способа создания нового процесса в Linux:

    1. С помощью функции System(). Этот способ сравнительно прост, однако неэффективен и создает определенные риски с точки зрения безопасности.
    2. С помощью функций fork() и exec() - более продвинутая техника с точки зрения гибкости, скорости и безопасности.

    Как Linux идентифицирует процессы?

    Поскольку Linux - многопользовательская система, и различные пользователи могут одновременно запускать разные программы, каждый запущенный экземпляр программы должен получать уникальный идентификатор от ядра системы.
    Программы идентифицируются по ID процесса (PID), а также по ID родительского процесса (PPID), поэтому процессы можно разделить на следующие категории:

    Родительские процессы - это процессы, которые в процессе работы создают другие процессы.
    Дочерние процессы - это процессы, созданные другими процессами.

    Процесс Init

    Процесс Init - это родительский процесс для всех процессов в системе, это первая программа, которая исполняется при загрузке системы Linux; он управляет всеми другими процессами в системе. Init запускается непосредственно ядром системы, поэтому он в принципе не имеет родительского процесса.

    Процесс Init всегда получает ID 1. Он функционирует как приемный родитель для всех осиротевших процессов.

    Для определения ID процесса можно использовать команду pidof:

    # pidof systemd
    # pidof top
    # pidof httpd
    

    определение ID процесса

    Найти ID процесса и ID родительского процесса для системной оболочки можно с помощью команд:

    $ echo $$
    $ echo $PPID
    

    поиск родительского ID процесса

    Запуск процессов в Linux

    При старте команды или программы (например cloudcmd – CloudCommander), она запускает процесс в системе. Вы можете запустить процесс переднего плана (интерактивный), как показано ниже, он подключится к терминалу и пользователь сможет взаимодействовать с ним:

    # cloudcmds
    

    запуск процесса

    Фоновые процессы в Linux

    Для запуска фонового процесса (неинтерактивного) используется символ &, при этом процесс не сможет читать ввод от пользователя, пока не будет перемещен на передний план.

    # cloudcmd &
    # jobs
    

    запуск фонового процесса

    Вы также можете отправить процесс на задний план, приостановив его с помощью [Ctrl + Z], это отправит сигнал SIGSTOP процессу, тем самым прекратив его работу; он простаивает:

    # tar -cf backup.tar /backups/* #press Ctrl+Z
    # jobs
    

    Для продолжения выполнения приостановленного в фоне процесса, используется команда bg:

    # bg
    

    Для перевода процесса из фонового режима на передний план используется команда fg вместе с ID:

    # jobs
    # fg %1
    

    перевод процесса из фонового режима на передний план

    Состояние процесса в Linux

    В зависимости от различных обстоятельств состояние процесса во время работы может меняться. В Linux процесс может находиться в следующих состояниях:

    Running (работа) - процесс работает (он является текущим процессом в системе) или готов к работе (ждет выделения ресурсов процессора).
    Waiting (ожидание) - в этом состоянии процесс ждет события, которое должно запустить его, или выделения системных ресурсов.
    Кроме того, ядро системы делит процессы в состоянии ожидания на два типа: перываемые процессы, состояние ожидания которых может быть прервано сигналом, и непрерываемые, состояние ожидания которых может быть прервано только аппаратным способом.
    Stopped (остановка) - в этом состоянии процесс останавливает работу, обычно после получения соответствующего сигнала. Например, процесс может быть остановлен для отладки.
    Zombie (зомби) - процесс мертв, то есть он был остановлен, но в системе осталась выполняемая им задача.

    Как просмотреть активные процессы в Linux

    В Linux есть несколько утилит для просмотра запущенных в системе процессов, наиболее широко известны команды ps и top:

    1. Команда ps

    Она выводит информацию о выбранных активных процессах, как показано ниже.

    # ps 
    # ps -e | head 
    

    ps

    2. top – утилита системного мониторинга

    top - это мощная утилита, которая позволяет в режиме реального времени просматривать список запущенных процессов, как показано ниже:

    # top
    

    top

    3. glances – утилита системного мониторинга

    glances - это сравнительно новая утилита для мониторинга активности системы с продвинутыми возможностями:

    # glances
    

    glances

    Есть также еще несколько полезных программ, которые вы можете использовать для просмотра списка активных процессов, почитать о них можно по ссылкам ниже.

    20 Command Line Tools to Monitor Linux Performance

    13 More Useful Linux Monitoring Tools

    Управление процессами в Linux

    В Linux также имеются команды для управления процессами, например kill, pkill, pgrep и killall. Ниже приведено несколько примеров их использования:

    $ pgrep -u tecmint top
    $ kill 2308
    $ pgrep -u tecmint top
    $ pgrep -u tecmint glances
    $ pkill glancesми
    $ pgrep -u tecmint glances
    

    команды для управления процессами

    Если вы хотите подробно изучить использование этих команд, информация по ссылкам ниже.

    A Guide to Kill, Pkill and Killall Commands to Terminate Linux Processess

    How to Find and Kill Running Processes in Linux

    Обратите внимание, что с их помощью вы можете завршать зависшие приложения, которые тормозят вашу систему.

    Отправка сигналов процессу

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

    $ kill -l
    

    сигналы

    Для отправки сигналов процессу используются описанные выше команды kill, pkill или pgrep. Однако программа ответит на сигнал, только если она запрограммирована распознавать такой сигнал.

    Большинство сигналов предназначены для использования системой или программистами при написании кода. Следующие сигналы могут быть полезны пользователю:

    SIGHUP 1 – отправляется процессу при закрытии контролирующего его терминала.
    SIGINT 2 – отправляется процессу контролирующим его терминалом, если пользователь прерывает работу процесса клавишами [Ctrl+C].
    SIGQUIT 3 – отправляется процессу, если пользователь посылает сигнал выхода из программы [Ctrl+D].
    SIGKILL 9 – этот сигнал немедленно завершает (убивает) процесс без выполнения любых операций очистки файлов, логов и т.д.
    SIGTERM 15 – это сигнал завершения работы программы (он по умоланию отправляется командой kill).
    SIGTSTP 20 – отправляется процессу контролирующим его терминалом с запросом на остановку (terminal stop); инициируется при нажатии [Ctrl+Z].

    Ниже приведены примеры использования команд kill для завершения работы Firefox при его зависании с использованием PID:

    $ pidof firefox
    $ kill 9 2687
    OR
    $ kill -KILL 2687
    OR
    $ kill -SIGKILL 2687 
    

    Для завершения программы с использованием ее названия используются команды pkill или killall:

    $ pkill firefox
    $ killall firefox 
    

    Изменение приоритета процесса

    В Linux все активные процессы имеют определенное значение приоритета (nice). Процессы с более высоким приоритетом обычно получают больше процессорного времени, чем процессы с более низким приоритетом.

    Однако пользователь с привилегиями root может менять приоритет с помощью команд nice и renice.
    В выводе команды top столбец NI отображает значения nice для процессов.

    $ top 
    

    top

    Вы можете использовать команду nice, чтобы задать значение nice процесса. Не забывайте, что обычный пользователь может присвоить процессу значение nice от 0 до 20, только если это процесс ему принадлежит.
    Отрицательные значения nice может использовать только пользователь root.

    Для понижения приоритета процесса используется команда renice:

    $ renice +8 2687
    $ renice +8 2103 
    

    Это все!

    Другие статьи об управлении процессами в Linux вы найдете на странице "Процессы в Linux-системе".

     

    http://rus-linux.net/MyLDP/proc/processes-in-Linux.html

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

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

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

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