Работа с процессами в Linux / Хабр
Управление процессами является неотъемлемой частью администрирования серверных систем под управлением ОС Linux. В этой практической статье мы рассмотрим примеры решения различных задач по управлению процессами.
Вообще, процесс, как и файл является фундаментальной абстракцией ОС Linux. То есть, без процессов невозможно функционирование данной (как, впрочем, и любой другой) операционной системы.
В рамках данной статьи я не буду сильно погружаться в теорию и рассказывать о том как процессы взаимодействуют с операционной системой и пользователем. На эту тему уже написано достаточно публикаций. Вместо давайте посмотрим, как на практике можно работать с процессами. В качестве тестовой ОС как обычно выступает ОС Linux Ubuntu 22.04.
Получаем список процессов
Каждый процесс имеет свои атрибуты. Это прежде всего идентификатор процесса (PID), также это образ, исполняемый файл, статус выполнения, атрибуты безопасности и т. д.
Получить список процессов с основными атрибутами можно с помощью команды:
sudo ps -ef
Если необходимо получить информацию по конкретному процессу, то можно воспользоваться командой:
sudo ps -p PID_процесса u
Такой вывод информации о процессах удобен при использовании в скриптах и для консольных команд. Но более удобным для визуального восприятия является древовидное представление, которое можно получить с помощью команды:
pstree -p
В результате мы получаем дерево процессов, в котором видно какой процесс является родительским для других процессов. Конечно, такую зависимость можно построить и на основании вывода ps сопоставив значение поля PPID (родительский процесс) интересующего процесса с PID соответствующего процесса. Но в виде дерева все выглядит гораздо нагляднее.
Приоритетные и фоновые процессы
Процессы могут быть приоритетными и фоновыми. Приоритетный процесс у нас по сути «прикреплен» к текущему терминалу. То есть он может считывать и передавать данные на стандартные устройства ввода/вывода. Но при этом, наш рабочий терминал будет заблокирован до тех пор, пока запущенный процесс не выполнится. По умолчанию, когда пользователь вводит команду на терминале, создается приоритетный процесс. Это удобно при работе с консольными командами, не требующими значительного времени на выполнение. Но это очень неудобно при использовании различных скриптов, работа которых занимает значительный период времени.
Для таких случаев лучше использовать фоновые процессы. Такие процессы не занимают текущий терминал, то есть мы можем одновременно с выполнением фонового процесса работать с другими командами, запускать процессы и т.д. Фоновый процесс также называется Заданием (Job).
Запустить процесс в фоновом режиме очень просто, достаточно добавить знак & после команды:
md5sum /etc/passwd &
После запуска выведется строка с номером задания (в скобках) и PID, появится приглашение на ввод команды в текущем терминале. При этом, номера заданий относятся только к текущему терминалу.
Однако, выполнение этой команды завершится слишком быстро, поэтому для дальнейших примеров я использую скрипт, использующий бесконечный цикл с условием while true…
После запуска в фоновом режиме посмотреть выполнение задание можно с помощью команды jobs:
Приоритетные задачи можно также превращать в фоновые и возвращать обратно в приоритетные.
В качестве примера я снова запущу свой скрипт. Нажатие Ctrl-Z приведет к остановке данного процесса. На рисунке ниже это вывод первой команды jobs. Далее остановленный процесс можно снова запустить в фоновом режиме с помощью команды bg (background). Во втором выводе jobs скрипт запущен со знаком &. И для того, чтобы вернуть процесс в фоновый режим воспользуемся командой fg (foreground).
Вообще, команды fg и bg переводят из/в фоновый режим задание с указанным номером. Но, если номер не указан, действие применяется к последнему созданному заданию, как в нашем случае.
В случае, если нам необходимо завершить процесс, проще всего воспользоваться командой
kill PID_процесса
Однако возможны ситуации, когда процесс может проигнорировать передаваемый ему командой KILL сигнал SIGTERM и не завершить свою работу. В таком случае мы можем воспользоваться командой:
kill -9 PID_процесса
В таком случае передается более мощный сигнал SIGKILL, который нельзя проигнорировать или заблокировать. Как жаль, что такой команды нет в Windows.
Виртуальная файловая система procfs
Виртуальная файловая система procfs, как можно понять из названия расположена только в памяти и не хранится на жестком диске постоянно. Доступ к ней можно получить, обратившись к каталогу /proc.
Как можно увидеть, в этом каталоге содержатся подкаталоги, соответствующие PID процессов. У каждого процесса есть своя запись в /proc с идентификатором в названии. В каждом из этих подкаталогов можно найти ряд файлов, связанных с данным процессом.
Вот основные файлы, которые есть в каждом каталоге процесса:
cmdline — полная командная строка процесса.
В примере для демона SSH видим следующее:
cwd — символьная ссылка на текущий каталог процесса.
exe — символьная ссылка на файл, который должен выполняться.
environ — переменные среды процесса.
fd — содержит ссылку на дескрипторы каждого открытого файла.
Конечно, это не исчерпывающий список тех файлов, которые находятся в каталоге каждого из процессов, так как там можно встретить еще множество файлов, типичных для того, или иного процесса.
Заключение
В этой статье были рассмотрены практические аспекты работы с процессами в ОС Linux. За рамками этой статьи осталась работа с приоритетами и сигналами и многое другое, что будет рассмотрено в следующей статье.
А на бесплатном уроке специализации Linux мои коллеги из OTUS расскажут про базовые команды в Linux. Зарегистрироваться на вебинар можно по этой ссылке.
Андрей Колесников о встрече Владимира Путина с Иваном Дедовым, на которой тот продемонстрировал железную эндокринологику
23 июня президент России Владимир Путин встретился с президентом Национального медицинского исследовательского центра эндокринологии Иваном Дедовым и узнал от него, рассказывает специальный корреспондент “Ъ” Андрей Колесников, что американцы пытаются все заблокировать, а финны вообще оказались на грани столкновения. Как и предполагал “Ъ”, между прочим.
Встреча с Иваном Дедовым — одна из любимейших для Владимира Путина
Фото: пресс-служба президента РФ
Встреча с Иваном Дедовым — одна из любимейших для Владимира Путина
Фото: пресс-служба президента РФ
Оперативного повода для встречи, как стало понятно, не было. Но просто разговор с таким человеком, как Иван Дедов, всегда праздник. Я уж не говорю о Владимире Путине.
— Я пришел порадовать вас и порадоваться вместе! — можно сказать, с порога сообщил Иван Дедов.— Недавно состоялся международный конгресс…
Он даже не стал говорить, что «эндокринологов» — это и так всем должно быть ясно.
— Не только по сахарному диабету — все были по эндокринопатии! — воскликнул академик.— Впервые в мировой литературе мы обосновали принципиально новую теорию развития аутоиммунных заболеваний!
То есть с тем, что не удалось Толстому и Достоевскому, справился Иван Дедов.
— На самом деле,— пояснил он,— иммунная система создана эволюционно для того, чтобы уничтожать все чужеродное. И вдруг иммунная система начинает атаковать самые жизненно необходимые органы. Бета-клетки поджелудочной железы — сахарный диабет, они продуцент инсулина, щитовидная железа — это интеллект, надпочечники — это вообще стресс и система, которая выдерживает, мозжечок — рассеянный склероз. Практически все системы затрагиваются.
Все просто. Щитовидная железа — это интеллект (А мы-то думали.
.. Вернее, так: а мы-то думали, что думаем…), мозжечок отвечает за рассеянный склероз. Никаких иллюзий.— Поэтому последние сто лет ведется поиск — в чем дело, почему иммунная система так агрессивно идет против своих кровных клеток? — Развивал свою энергичную, а давайте говорить прямо, свою буйную мысль Иван Дедов.— Были генетические теории, были, конечно, прежде всего наезды на иммунную систему, что она злодейка какая-то! Изучая много лет, как идет становление и в филогенезе… это не то, что мы только сегодня эту область изучаем… и в онтогенезе, мы пришли к выводу, что главной причиной является функциональная несостоятельность ключевого периферического звена: щитовидной железы или бета-клеток!
Если что, это все происходило в рабочем кабинете господина Путина в его рабочее время.
— То есть они не вырабатывают достаточное количество инсулина, чтобы обеспечить энергией не только весь организм, но главное — мозг! — воскликнул Иван Дедов.— Мозг — это главное действующее звено.
Интересно, кто перед нами был сейчас. Скорее всего, просто человек, сошедший или, например, сорвавшийся с карантина. Это ведь у всех происходит по-разному.
— И мозг,— продолжал он,— потребляет половину всей глюкозы, которую мы потребляем, 50%, не имея при этом ни одного грамма запасов! Перекрыть на пять-семь минут подачу глюкозы… Мозг только глюкозу потребляет в качестве энергии, не жиры, не белки, только глюкозу! Поэтому, естественно, ситуация складывается, когда бета-клетки функционально не могут обеспечить очень интенсивно работающий мозг или развивающийся мозг…
Ситуация складывается не очень, имел он в виду.
— Родители иногда говорят: «Ну как же так, дедушка с бабушкой здоровы, мы здоровы, ребенок в девятом классе, отличник, в музыкальной школе учится…» Короче говоря, перегрузки такие для мозга, которые когда-то эволюционно, генетически не были заложены! — сокрушался академик.— И конечно, это главная причина, начинать именно с того надо, а не то что нужно как-то ограничить иммунную систему и так далее!
Между прочим, в этом кабинете ведь редко бывают увлеченные люди. А Иван Дедов является безмерно увлеченным человеком. И это делает ему честь. Ему вообще все равно, в каком он кабинете. Лишь бы выговориться. А часто вы встречали людей, которым в принципе есть что сказать?
— На первой картинке,— Иван Дедов уже демонстрировал президенту свою презентацию,— я как раз показываю Фредерика Бантинга — первого, кто спас сто лет тому назад ребенка, спас Леонарда Томпсона, введя ему впервые инсулин, полученный из поджелудочной железы телят. Это сейчас генно-инженерный инсулин.
Да, пока все, о чем он говорил, было известно как раз примерно сто лет назад, но стоило подождать продолжения. Очень даже стоило.
— А сегодня,— рассказал господин Дедов,— конечно,— посмотрите, следующая страничка,— это фантастический шаг! Ребята имеют сенсор под кожей, который каждую секунду на смартфоны посылает родителям данные, и маленькая помпочка, которая поставляет инсулин!
С одной стороны, удобство, которое дарят технологии, а с другой:
— К большому сожалению, нарастает все-таки заболеваемость…
— Почему? — только и смог спросить Владимир Путин.
— Нарастает! Я думаю, что это не генетика. Генетика настолько стабильная, настолько консервативная! Это эпигенетический фактор.
Да, каждый скажет, что это совсем другое дело.
— Это разное,— продолжил Иван Дедов.— Тревоги, всевозможные психологические нагрузки и так далее, это и приводит… Мы здесь находимся, Владимир Владимирович, в рейтинге (он показал в презентации место России в этом рейтинге, и вроде не наобум.— А. К.), а вот финны, норвежцы, датчане. Самый высокий процент сахарного диабета — Финляндия!
— Почему? — снова только и вымолвил Владимир Путин.
Все равно больше ничего не успел бы.
— Развивалось таким образом,— кивнул Иван Дедов,— что неандертальцы — это охотники. Это в основном, конечно, мясная пища, мясо… Углеводов практически нет! А сапиенты, homo sapiens, поднимались с Африки!
Согласитесь, становилось все интересней.
— Они поднимались как раз с тех регионов, где уже было земледелие, многообразное питание, и углеводов было много, потому что для развития мозга нужны углеводы, особенно для творческой деятельности. Ведь сахарным диабетом второго типа миллионы болеют, но тех, кто занимается физической работой, всего 1%! — не стал скрывать основное академик.— Все остальные — это люди творческого труда! Сегодня на планете около одного миллиарда больных диабетом — это люди творческого труда! Мозг требует все время все больше и больше глюкозы! Излишки уходят в определенные места в виде жировых запасов.
Мысль о том, что думают только люди творческого труда, заслуживала особого внимания. Лично у меня она вызывала откровенную эмпатию.
— Что здесь произошло? — говорил академик.— Они соприкоснулись, сапиенты и неандертальцы, как раз в зоне Финляндии. Соприкосновение продолжалось 100 тыс. лет, и помаленечку сапиенты все-таки их отодвинули! Отодвинули почему? Потому что они более творческие были, у них было разнообразие еды и были углеводы!
Все объяснялось, как всегда, просто. Все остальное, кроме самого простого,— конспирология. Всем бы это понять.
— И вот здесь,— с энтузиазмом продолжал Иван Дедов,— на следующей странице, изображено, как неандертальцы, охотники, питались преимущественно мясом, поддерживали, конечно, минимальный семейный социум, начальное творчество, они писали что-то на скалах.
Сильные, смелые, умные, но были доверчивыми, наивными и простодушными, как у нас некоторые, особенно Крайний Север!Иван Дедов уже не стеснялся называть вещи своими именами. А что, пришло время.
— А homo sapiens — это уже неограниченный доступ к углеводам! Это уже творческая работа, развитие творческого мозга, коллективизм, творчество, сложный социум! Сильный, смелый, умный, но хитрый, предприимчивый, коварный, вероломный. Вот эти качества, конечно, homo sapiens до сих пор несет, естественно совершенно, особенно отдельные виды.
И тут он продолжил называть всех своими именами:
— Финны оказались как раз на грани этого столкновения! Они исторически были собирателями, и поджелудочная железа (у финнов.— А. К.) была минимально развита. А когда тут супермаркет, условно говоря, многообразие углеводов, то, естественно…
— Не их пища, получается,— поддержал разговор Владимир Путин.
— Не их пища, да,— подтвердил Иван Дедов, немного даже словно удивившись, что он тут не один.
И добавил:
— И сегодня неслучайно и наш Крайний Север: ведь рюмка водки, и они уже (Ну тут слова и не нужны, все слишком ясно и неминуемо.— А. К.)… Финнам ограничивают, потому что минимальное количество углеводов, минимальное брожение и минимальное количество алкогольдегидрогеназы в печени… Это целый цикл! Эволюционно они слишком быстро начали, теперь нужно медленнее!
Его то есть снова немного занесло, но лишь на мгновение, надо отдать ему должное; и он ведь быстро смог вернуться:
— А что делает Финляндия? Она ищет всякие антигены, разные гены, которые мешают: лишают материнского молока малышей, чтобы они не заболели, потому что в разы!
Тут не следовало пытаться понять. Нужно было попытаться поверить.
— Мы нашли отроги финно-угорской группы в Вологодской области: синеглазые… Смотрим, почему сахарный диабет такой…
— Так у нас много, в Поволжье…— все еще старался вникать господин Путин.
Он имел в виду, очевидно, что много представителей финно-угорской группы.
— В Поволжье то же самое, финно-угорская группа…— Оттуда, если коротко сказать,— согласился академик.
Все-таки они понимали друг друга.
— Но мы, конечно, выступаем категорически против того, что сегодня американцы предлагают! — не успокаивался Иван Дедов.
И в этом Владимир Путин был с ним заодно.
— Американцы сегодня предлагают заблокировать иммунную систему, поскольку иммунная система в экстремальных ситуациях добивается — когда инсулина не хватает, тогда бросаются уже Т-киллеры! Они начинают просто вытрясать крохи инсулина, потому что ребенок погибает! Они предлагают молекулу, которая заблокировала бы весь ряд Т-киллеров, а Т-киллеры уничтожают все чужеродное, особенно неопластические процессы! — с тревогой напомнил Иван Дедов.— Поэтому они предлагают в качестве профилактики для детей, особенно в ядерных семьях… Ядерные семьи — это где один болен, ребенок или взрослый…— Естественно, в этой ситуации открываются ворота для инфекций, вирусов! И у них в работе, маленькой работе, лимфопения, то есть падение всех лимфоцитов, на 75%! Конечно, я написал категорическое письмо туда, и мы сейчас эту тему обсуждаем, потому что завтра может появиться новое лекарство!
А оно без преувеличения может оказаться, по версии Ивана Дедова, смертельным.