Как проверить, запущен ли процесс в Linux

Обновлено: 21.11.2024

Хотите просмотреть все запущенные процессы на сервере Linux и узнать, какие из них потребляют больше всего ресурсов? Не ищите дальше, потому что в этой статье мы объясним, как составить список процессов с помощью нескольких распространенных команд Linux.

Введение в процессы Linux

Процесс – это выполнение программы. Их можно запускать при открытии приложения или при вводе команды через терминал командной строки.

Команда может только создать процесс. Однако приложение может запускать несколько процессов для разных задач. Например, Google Chrome будет запускать новый процесс каждый раз, когда открывается новая вкладка.

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

Процесс может быть инициирован как активный или фоновый процесс.

По умолчанию все команды, выполняемые в оболочке, запускаются как процессы переднего плана. Поскольку процесс занимает оболочку, вам нужно дождаться его завершения, прежде чем выполнять другие команды.

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

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

Как составить список запущенных процессов в Linux?

Чтобы получить список процессов в Linux, используйте одну из трех команд:

  • ps — выводит представление обо всех процессах, также может использоваться с параметрами для более точного вывода
  • вверху — показывает список запущенных процессов в реальном времени
  • htop — результаты в режиме реального времени в удобном для пользователя виде

Давайте углубимся в каждый из них.

Использование команды «ps»

Команда ps (состояния процессов) создает снимок всех запущенных процессов. Поэтому, в отличие от диспетчера задач Windows, результаты являются статическими.

Когда эта команда используется без каких-либо дополнительных аргументов или параметров, она возвращает список запущенных процессов вместе с четырьмя важными столбцами: PID, имя терминала (TTY), время выполнения (TIME) и имя команды. который запускает процесс (CMD). Вы можете использовать ps aux для получения более подробной информации о запущенных процессах. Вот разбивка каждого аргумента:

  • параметр выводит все запущенные процессы всех пользователей в системе.
  • Параметр u предоставляет дополнительную информацию, например процент использования памяти и ЦП, код состояния процесса и владельца процессов.
  • Опция
  • x перечисляет все процессы, не запущенные с терминала. Прекрасным примером этого являются демоны, связанные с системой процессы, которые запускаются в фоновом режиме при загрузке системы.

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

  • ps -u [имя пользователя] выводит список всех запущенных процессов определенного пользователя.
  • ps -e или ps -A отображает активные процессы Linux в общем формате UNIX.
  • ps -T выводит активные процессы, которые выполняются с терминала.
  • Ps -C имя_процесса отфильтрует список по имени процесса. Кроме того, эта команда также показывает все дочерние процессы указанного процесса.

Использование команды «top»

Команда top используется для обнаружения ресурсоемких процессов. Эта команда Linux отсортирует список по использованию ЦП, поэтому процесс, который потребляет больше всего ресурсов, будет помещен вверху. Также полезно проверить, запущен ли определенный процесс.

В отличие от команды ps вывод команды top периодически обновляется. Это означает, что вы будете видеть обновления использования ЦП и времени работы в режиме реального времени. Как только оболочка вернет список, вы можете нажать следующие клавиши для взаимодействия с ним:

После установки введите htop, и вы получите список всех ваших процессов Linux. Как и предыдущая команда, htop также имеет несколько сочетаний клавиш:

< td>Понизить приоритет процесса.
КлавишиФункции
F9Завершить процесс .
F8Увеличить приоритет процесса.
F7
F6Сортировать процессы по любому столбцу.
F5Отображать процессы в виде дерева.
F4Фильтровать процессы по имени.
F3Поиск процесса.
F2Открыть настройку htop.
F1Отобразить меню справки.

Заключение

Важно знать, как составить список всех запущенных процессов в вашей операционной системе Linux. Знания пригодятся, когда вам понадобится управлять процессами.

Какую из трех команд вы предпочитаете? Поделитесь своими мыслями в разделе комментариев ниже!

Боладжи Айодеджи

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

Для каждого из этих программных приложений, которые вы открываете или запускаете команды, создается процесс или задача.

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

Вы когда-нибудь задумывались, как проверить все программы, работающие на вашем компьютере? Тогда эта статья для вас, так как я покажу вам, как составлять список, управлять и завершать все запущенные процессы на вашем компьютере с Linux.

Предпосылки

  • Установлен дистрибутив Linux.
  • Основные знания о навигации в командной строке.
  • Улыбка на вашем лице :)

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

Процесс — это экземпляр работающей компьютерной программы, который можно найти в программном приложении или команде.

Например, если вы откроете редактор Visual Studio Code, будет создан процесс, который остановится (или умрет) только после завершения или закрытия приложения Visual Studio Code.

Точно так же, когда вы запускаете команду в терминале (например, curl ifconfig.me ), создается процесс, который останавливается только тогда, когда команда завершает выполнение или завершается.

Как составить список запущенных процессов в Linux с помощью команды ps

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

Чтобы проверить это, просто откройте терминал и выполните команду ps следующим образом:

Это отобразит процесс для текущей оболочки с четырьмя столбцами:

  • PID возвращает уникальный идентификатор процесса.
  • TTY возвращает тип терминала, в который вы вошли
  • ВРЕМЯ возвращает общую загрузку ЦП.
  • CMD возвращает имя команды, запустившей процесс.

Вы можете отображать определенный набор процессов, используя любую комбинацию параметров (например, -A -a , -C , -c , -d , -E , -e , -u , -X , -x , и др.).

Если вы укажете более одной из этих опций, будут показаны все процессы, соответствующие хотя бы одной из заданных опций.

Введите man ps в своем терминале, чтобы прочитать руководство по команде ps, в котором есть полный справочник по всем параметрам и их использованию.

Чтобы отобразить все запущенные процессы для всех пользователей на вашем компьютере, включая их имена пользователей, а также отобразить процессы, не подключенные к вашему терминалу, вы можете использовать следующую команду:

Вот разбивка команды:

  • ps : команда состояния процесса.
  • a : отображает информацию о процессах других пользователей, а также о ваших собственных.
  • u : отображает процессы, принадлежащие указанным именам пользователей.
  • x : включает процессы, у которых нет управляющего терминала.

Это отобразит процесс для текущей оболочки с одиннадцатью столбцами:

  • USER возвращает имя пользователя, запустившего процесс
  • PID возвращает уникальный идентификатор процесса.
  • %CPU возвращает процент использования ЦП
  • %MEM возвращает использование памяти в процентах
  • VSV возвращает виртуальный размер в килобайтах.
  • RSS возвращает размер резидентного набора
  • TT возвращает имя терминала управления
  • STAT возвращает символическое состояние процесса
  • STARTED возвращает время начала
  • CMD возвращает команду, которая запустила процесс.

Как составить список запущенных процессов в Linux с помощью команд top и htop

Вы также можете использовать команду Top Task Manager в Linux, чтобы просмотреть в режиме реального времени отсортированный список основных процессов, которые используют больше всего памяти или ЦП.

Введите top в своем терминале, и вы получите результат, подобный тому, который вы видите на скриншоте ниже:

Альтернативой top является htop, который предоставляет интерактивный системный монитор для просмотра процессов и управления ими. Он также отображает отсортированный в реальном времени список процессов в зависимости от использования ими ЦП, и вы можете легко искать, фильтровать и уничтожать запущенные процессы.

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

Просто введите htop в своем терминале, и вы получите результат, подобный тому, который вы видите на скриншоте ниже:

Как завершить запущенные процессы в Linux

Уничтожение процесса означает завершение работающего приложения или команды. Вы можете убить процесс, запустив команду kill с идентификатором процесса или команду pkill с именем процесса, например так:

Чтобы найти идентификатор запущенного процесса, вы можете использовать команду pgrep, за которой следует имя процесса, например:

Чтобы завершить процесс iTerm2 на снимке экрана выше, мы будем использовать любую из приведенных ниже команд. Это автоматически завершит и закроет процесс iTerm2 (приложение).

Заключение

Когда вы перечисляете запущенные процессы, это обычно длинный и сгруппированный список. Вы можете передать его через less, чтобы отображать вывод команды по одной странице за раз в вашем терминале следующим образом:

или отображать только определенный процесс, который соответствует определенному имени, например так:

Я надеюсь, что теперь вы понимаете, что такое процессы Linux и как ими управлять с помощью команд ps , top и htop.

Обязательно ознакомьтесь с руководством по каждой команде, запустив man ps , man top или man htop соответственно. Руководство содержит исчерпывающую справочную информацию, которую вы можете просмотреть, если вам понадобится дополнительная помощь в любой момент.

Спасибо за прочтение – удачи! 💙

Боладжи Айодеджи

Инженер-программист, создатель контента и адвокат разработчиков.

Если вы дочитали до этого места, отправьте твит автору, чтобы показать, что вам не все равно. Твитнуть спасибо

Научитесь программировать бесплатно. Учебная программа freeCodeCamp с открытым исходным кодом помогла более чем 40 000 человек получить работу в качестве разработчиков. Начать

freeCodeCamp – это поддерживаемая донорами некоммерческая организация, освобожденная от налогов в соответствии со статьей 501(c)(3) (идентификационный номер федерального налогоплательщика США: 82-0779546)

Наша миссия: помочь людям научиться программировать бесплатно. Мы достигаем этого, создавая тысячи видеороликов, статей и интерактивных уроков по кодированию — все они находятся в свободном доступе. У нас также есть тысячи учебных групп freeCodeCamp по всему миру.

Пожертвования в пользу freeCodeCamp идут на наши образовательные инициативы и помогают оплачивать серверы, услуги и персонал.

Каждое приложение, которое вы используете, или команда, которую вы запускаете в своей системе Linux, создает процесс или задачу. Как системный администратор, вам необходимо будет управлять процессами, чтобы обеспечить оптимальную производительность системы.

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

  • Система под управлением Linux
  • Учетная запись с правами root или sudo
  • Доступ к окну терминала/командной строке

Процессы в Linux

Процессы в Linux запускаются каждый раз, когда вы запускаете приложение или команду. Хотя каждая команда создает один процесс, приложения создают и запускают несколько процессов для разных задач.

По умолчанию каждый новый процесс запускается как процесс переднего плана. Это означает, что он должен завершиться, прежде чем может начаться новый процесс.Запуск процессов в фоновом режиме позволяет одновременно выполнять другие задачи.

Примечание. Узнайте больше о завершении процессов Linux в нашем руководстве по завершению процессов в Linux.

Список запущенных процессов в Linux

Чтобы получить список запущенных в данный момент процессов, используйте команды Linux ps , top , htop и atop . Вы также можете комбинировать команду ps с командой pgrep для идентификации отдельных процессов.

Вывод списка запущенных процессов в Linux с помощью команды ps

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

Команда ps использует следующий синтаксис:

Часто используемые параметры команды ps включают:

  • a : список всех разрушающих процессов для всех пользователей.
  • -A, -e : список всех процессов в системе.
  • -a : список всех процессов, кроме лидеров сеансов (экземпляры, где идентификатор процесса совпадает с идентификатором сеанса) и процессов, не связанных с терминалом.
  • -d : перечислить все процессы, кроме лидеров сеансов.
  • --deselect, -N : перечислить все процессы, кроме тех, которые соответствуют определенному пользователем условию.
  • f : отображает иерархию процессов в формате ASCII.
  • -j : отображает выходные данные в формате заданий.
  • T : список всех процессов, связанных с этим терминалом.
  • r : список только запущенных процессов.
  • u : разверните вывод, чтобы включить дополнительную информацию, например об использовании ЦП и памяти.
  • -u : укажите пользователя, процессы которого вы хотите вывести в список.
  • x : включить процессы без TTY.

Примечание. Проверьте полный список параметров команды ps с помощью команды man ps .

Выполнение команды ps без каких-либо параметров приводит к выводу, подобному следующему:

Вывод по умолчанию включает следующие категории:

  • PID: идентификационный номер процесса.
  • TTY: тип терминала, на котором запущен процесс.
  • ВРЕМЯ: общая загрузка ЦП.
  • CMD: имя команды, запустившей процесс.

Использование комбинации параметров a , u и x приводит к более подробному выводу:

Новые категории расширенных выходных данных включают:

  • ПОЛЬЗОВАТЕЛЬ: имя пользователя, запускающего процесс.
  • %CPU: процент использования ЦП.
  • %MEM: процент использования памяти.
  • VSZ: общая виртуальная память, используемая процессом, в килобайтах.
  • RSS: размер резидентного набора, часть оперативной памяти, занимаемая процессом.
  • STAT: текущее состояние процесса.
  • НАЧАЛО: время запуска процесса.

Чтобы отобразить запущенные процессы в иерархическом представлении, введите:

Примечание. При использовании нескольких параметров команды ps, содержащих символ тире ("-"), вам нужно использовать только один символ тире перед перечислением параметров. Например, чтобы использовать команду ps с параметрами -e и -f, введите ps -ef .

Отфильтровать список процессов по пользователю с помощью:

Например, отображение списка процессов, запущенных пользователем phoenixnap:

Список запущенных процессов в Linux с помощью команды top

Команда top отображает список запущенных процессов в порядке убывания загрузки ЦП. Это означает, что самые ресурсоемкие процессы отображаются вверху списка:

Вывод команды top обновляется в режиме реального времени с частотой обновления по умолчанию, равной трем секундам. Верхний вывод команды содержит следующие категории:

  • PID: идентификационный номер процесса.
  • ПОЛЬЗОВАТЕЛЬ: имя пользователя, запускающего процесс.
  • PR: приоритет планирования для процесса.
  • NI: хорошее значение процесса с отрицательными числами, указывающими на более высокий приоритет.
  • VIRT: объем виртуальной памяти, используемый процессом.
  • RES: объем резидентной (физической) памяти, используемой процессом.
  • SHR: общий объем общей памяти, используемой процессом.
  • S: статус процесса — R (выполняется) или S (спящий).
  • %CPU: процент использования ЦП.
  • %MEM: процент использования памяти.
  • ВРЕМЯ+: общая загрузка ЦП.
  • КОМАНДА: имя команды, запустившей процесс.

Пока выполняется команда top, используйте следующие параметры для взаимодействия с ней или изменения формата вывода:

  • c: показать абсолютный путь к процессу.
  • d: изменить частоту обновления вывода на заданное пользователем значение (в секундах).
  • h: отображение окна справки.
  • k: завершить процесс, указав PID.
  • M: отсортировать список по использованию памяти.
  • N: отсортировать список по PID.
  • r: изменить значение nice (приоритет) процесса, указав PID.
  • z: измените цвет вывода, чтобы выделить запущенные процессы.
  • q: выйти из командного интерфейса.

Примечание. В параметрах взаимодействия с командой top учитывается регистр. Не забудьте сначала отключить Caps Lock.

Вывод списка запущенных процессов в Linux с помощью команды htop

Команда htop предлагает те же выходные данные, что и команда top, но в более понятном и удобном для пользователя виде.

Поскольку большинство дистрибутивов Linux не включают эту команду, установите ее с помощью:

Использование команды htop дает следующий результат:

Используйте следующие клавиши для взаимодействия с командой htop:

  • Клавиши направления: прокрутка списка процессов по вертикали и горизонтали.
  • F1: открыть окно справки.
  • F2: открыть настройку команды htop.
  • F3: поиск процесса по имени.
  • F4: фильтровать список процессов по имени.
  • F5: переключение между отображением иерархии процессов в виде отсортированного списка или дерева.
  • F6: отсортировать процессы по столбцам.
  • F7: уменьшить значение nice (повысить приоритет) процесса.
  • F8: увеличить значение nice (уменьшить приоритет) процесса.
  • F9: завершить выбранный процесс.
  • F10: выход из командного интерфейса.

Вывод списка запущенных процессов в Linux с помощью команды atop

Команда atop предоставляет более полный обзор запущенных процессов по сравнению с командой top. Начните с установки команды atop с помощью:

Команда atop создает вывод, аналогичный следующему:

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

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

  • PID: идентификационный номер процесса.
  • SYSCPU: использование ЦП процессом при обработке системы.
  • USRCPU: использование ЦП процессом при работе в пользовательском режиме.
  • VGROW: объем виртуальной памяти, который процесс занял с момента последнего обновления выходных данных.
  • RGROW: объем физической памяти, который процесс занял с момента последнего обновления выходных данных.
  • RUID: реальный идентификатор пользователя, запустившего процесс.
  • ST: текущий статус процесса.
  • EXC: код выхода после завершения процесса.
  • THR: количество потоков, используемых процессом.
  • S: текущий статус основного потока процесса.
  • CPUNR: количество процессоров, используемых процессом.
  • ЦП: процент ЦП, используемый процессом.
  • CMD: имя команды, запустившей процесс.

Использование команды atop со следующими параметрами изменяет формат вывода:

  • -a: показывать только активные процессы.
  • -c : показать командную строку для каждого процесса.
  • -d : показать информацию о диске.
  • -l : ​​показать общие значения в среднем за секунду.
  • -m : показать информацию о памяти.
  • -n : показать информацию о сети.
  • -s : показать информацию о планировании процесса.
  • -v : показать подробный вывод.
  • -y : показать отдельные темы.

Используйте следующие флаги для взаимодействия с командой atop:

  • a: Сортировка по наиболее активным ресурсам.
  • c: сортировка по потреблению ЦП.
  • d: сортировка по активности на диске.
  • m: сортировка по использованию памяти.
  • n: сортировать по сетевой активности.

Поиск идентификаторов процессов с помощью команды pgrep

Использование команды pgrep позволяет выполнять поиск определенного процесса. Команда pgrep использует следующий синтаксис:

Например, используйте следующую команду для поиска процесса firefox:

В выходных данных команды указан PID процесса:

Использование этого PID с командой ps позволяет получить больше информации о процессе. В этом примере использование PID 1439 предоставляет информацию о процессе firefox:

После прочтения этого руководства вы сможете использовать команды ps , top , htop и atop для просмотра запущенных процессов в Linux и управления ими.

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

83, 0

Я хочу проверить, запущен ли уже экземпляр скрипта.

Я видел много разных примеров, но понятия не имею, как это сделать.

Пожалуйста, помогите.

2050, 105 

23 310, 4 623 

Традиционным способом является создание процессом PID-файла в каталоге /var/run/. Я создаю его в /tmp/ просто как пример, который может работать от имени любого пользователя. Я также использую FIFO в качестве файла блокировки, чтобы предотвратить состояние гонки.

83, 0

---------- Сообщение обновлено в 03:41 ---------- Предыдущее обновление было в 01:23 ----------

[/COLOR]Я немного изменил свой сценарий. теперь я получаю синтаксические ошибки.

Для меня этот сценарий выглядит нормально.

Может ли кто-нибудь помочь мне найти проблему.

23 310, 4 623 

Какие синтаксические ошибки возникают?

[edit] Хорошо, я вижу несколько очевидных. Мои разрывы строк были не просто декоративными, это:

Вам также нужно исправить другой цикл while и этот оператор if.

И, пожалуйста, удалите "пока правда ; не спать 1 ; готово". Внимательно посмотрите, что он делает.

2, 0

Еще 10 обсуждений, которые могут вас заинтересовать

1. Программирование оболочки и создание сценариев

Цикл проверки текущего запущенного процесса.

Здравствуйте, гуру, t=`ps -u irb|grep -v grep|grep BSNL_PAYMENT_C` echo $t if then echo $? echo "Выполняется процесс создания." else echo "Процесс завершился в $dat $tim" fi Как мне использовать цикл, чтобы скрипт постоянно проверял текущее состояние этого процесса. (1 ответ)

Обсуждение начато: ankitknit

2. UNIX для чайников, вопросы и ответы

Как процесс может проверить, запущен ли тот или иной процесс на другой машине?

У меня есть процесс 1, работающий на одном компьютере и создающий файл журнала. Теперь другой процесс, который может быть запущен на любой машине, хочет знать, запущен ли процесс 1 или нет, а также, если он работает, он хочет передать файл журнала, созданный процессом 1, на терминал, с которого запущен процесс 2. (2 ответа)

Обсуждение начато: saurabhnsit2001

3. Программирование оболочки и создание сценариев

необходимо проверить, запущен ли процесс

Привет, я проверяю, запущен ли процесс или нет, используя приведенное ниже. /usr/ucb/ps auxww | grep 109 |grep рми | awk '' 9718 Таким образом, мы видим, что 9718 — это PID. Он возвращает пустое значение, если процесс не запущен. Мне нужно выполнить какое-то действие, если процесс не запущен, и оставить его, если. (8 ответов)

Обсуждение начато: shifahim

4. Программирование

Как проверить, запущен ли процесс в C

Как проверить, запущен ли процесс на C? Я пытаюсь использовать ps aux |grep «имя процесса», но не могу этого сделать. Как я могу это сделать? Спасибо, (1 ответ)

Обсуждение начато: cprogdude

5. UNIX для чайников, вопросы и ответы

Команда для проверки того, запущен ли определенный процесс

Привет. Как лучше всего проверить, запущен ли конкретный процесс на сервере Linux. Чтобы проверить любой процесс Java, я использую приведенную ниже команду. ps -ef |grep jvm Когда я выполняю приведенную выше команду, она выводит список всех процессов. Приведенная выше команда в идеале должна возвращать только файл . (6 ответов)

Обсуждение начато: vr3w3c9

6. Программирование оболочки и создание сценариев

Обсуждение начато: Raynon

7. UNIX для продвинутых и опытных пользователей

Как проверить, с какого момента (как долго) запущен конкретный процесс?

Обсуждение начато: hpuxlxboy

8. UNIX для продвинутых и опытных пользователей

как проверить, как долго выполняется процесс.

Мне нужно проверить, как долго процесс выполняется в системе unix. Если я использую ps -ef, я получаю следующее сообщение guest 2453638 1998920 0 16:16:05 - 0:00 dsapi_slave 9 8 0, но это показывает только время, а не дату. Может ли кто-нибудь посоветовать мне какой-нибудь сценарий, чтобы узнать, как это сделать. (2 ответа)

Обсуждение начато: ukatru

9. Программирование оболочки и создание сценариев

проверить запущенный процесс

Обсуждение начато: rose1207

10. Программирование оболочки и создание сценариев

Как проверить, запущен ли другой экземпляр процесса

Здравствуйте, я пишу сценарий оболочки для вызова программы на C++. Прежде чем запускать программу на C++ (oi7loadbalancer), я проверяю, запущен ли процесс. Я запускаю процесс, только если он еще не запущен. У меня есть следующая проверка в моем сценарии. proccount=`ps -f -u $USER_NAME | грэп. (8 ответов)

Читайте также: