Linux no process found

Linux find process by name

Procedure to find process by name on Linux

  1. Open the terminal application.
  2. Type the pidof command as follows to find PID for firefox process:
    pidof firefox
  3. Or use the ps command along with grep command as follows:
    ps aux | grep -i firefox
  4. To look up or signal processes based on name use:

pgrep firefox

Linux find process by name using pgrep command

pgrep command looks through the currently running processes and lists the process IDs which match the selection criteria to screen. All the criteria have to match. For example, will only list the processes called sshd AND owned by root user:
$ pgrep -u root sshd
Just look up pid for firefox process:
$ pgrep firefox

How to use ‘ps aux | grep command’

ps command shows information about a selection of the active processes:
$ ps aux
$ ps aux | grep -i ‘search-term’
$ ps aux | grep ‘firefox’
$ ps aux | grep ‘sshd’
OR use the following syntax instead of using egrep command in pipes:
$ ps -fC firefox
$ ps -fC chrome
The -C option asks ps command to select PIDs by command name.

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

Using pidof command to grab PIDs for any named program on Linux

The pidof command finds the process id’s (pids) of the named programs such as sshd, firefox and more. For example:
$ pidof sshd
$ pidof firefox
Sample outputs:

A note about top/htop command

To display Linux processes use top command or htop command:
$ top
OR
$ htop

See also

Getting more help

Read the man pages for the following command using man command:
$ man pgrep
$ man pidof
$ man ps

🐧 Get the latest tutorials on Linux, Open Source & DevOps via

Источник

Killall не видит процессы

Запукаем стоп апача:

Смотрим, действительно ли остановился. Доверяй да проверяй!

Ну вот, а еще друг называется.

А теперь давай досвиданья! killall apache2

Но что мы видим?

процессы есть, а killall их не видит

олсо, по kill -9 по отдельнности они убиваются ОК

На сцену выходит Чак Норрис и делает удар с разворота!

killall -9 apache2

Похоже, это поддельный Чак Норрис!

pkill тоже не работает, кстати

ты знаешь эти ваши седы-авки? Нужен цикл, чтобы пробежался по всему выхлопу ps aux, для каждой строчки выдрал pid (сначала строка, потом пробел, потом интовое число — его), и сделал по ним kill -9

Читайте также:  Ddos bluetooth kali linux

вах. хотел kill -9 $(pgrep apache2), но pgrep apache2 выдает пустоту

а между тем, у меня не галлюцинации! Заходя на localhost отображается страничка, которую рендерит Апач

There are processes named ‘apache2’ running which do not match your pid file which are left untouched in the name of safety, Please review the situation by hand.

читать научись, да? Ну или открой для себя гуглотранслятор, раз 100 слов не осилил выучить.

Как связана работа утилиты kill c пид-файлами?

ты просил. Это просто печатает, если понравится, смени

Как связана работа утилиты kill c пид-файлами?

утилита kill жрёт PID’ы. Из PID-файлов. В данном случае, с кормлением проблема, нужно из ложечки, ручками. Я не знаю, ппочему у тебя так, читай лог.

facepalm. А есть что-нибудь, что работает не с пидами, а с реальным деревом процессов?

facepalm. А есть что-нибудь, что работает не с пидами, а с реальным деревом процессов?

pid-файл — просто семафор. Сигнализирует о том, что ЭТОТ апач уже запущен. Если попытаться запустить ещё один, она

1. скажет — «уже один запущен»

2. убьёт ненужный pidфайл мёртвого апача, и запустит другой

у вас какой-то третий случай. Например если вы ручками убили апач или его файл. Разбирайтесь, в чём проблема.

может, проблема в том, что апач при старте первым процессом спавнит еще несколько раз себя. А при остановке через /etc/init.d/apache2 stop эти процессы не умерли вместе с основным процессом.

Вопрос, почему они не умерли и как это предупредить в будущем?

уже ничего 🙁 я решил, что страсть к исследованиям не стоит ждать несколько часов, пока кто-нибудь с лора что-нибудь ответит и сделал физическую перезагрузку. Теперь работает.

Вопрос, почему они не умерли и как это предупредить в будущем?

Теперь тебе поможет только гадание на кофейной гуще.

я решил, что страсть к исследованиям не стоит ждать несколько часов, пока кто-нибудь с лора что-нибудь ответит

Ты совета не спрашивал, но я его всё равно дам: нет смысла спрашивать на форуме, если не можешь подождать ответа. Иногда в тему через _неделю_ приходит анонимус и пишет нужный ответ.

возможно, что killall получает список процессов, которые прнадлежат uid, который его запустил. А в данном случае они принадлежат www-data, а не root.

killall получает список процессов, которые прнадлежат uid, который его запустил

Не-не. У меня тоже апачи под www-data, killall сказал: «у тебя прав нету».

Вопрос, почему они не умерли и как это предупредить в будущем?

вот на этот вопрос я затрудняюсь ответить. Ибо дочерние процессы в норме умирают вслед за родителем. Что-то пошло не так.

я не знал, что перезагрузка поможет.

А в данном случае они принадлежат www-data, а не root.

это нормально. Один апач(от рута) запускает кучу других(от юзера www).

Может проблема в том, что killall отправила сигнал «сдохни» всем процессам, но убились почему-то не все. Надо отдавать сигнал только главному, который от рута.

я не знал, что перезагрузка поможет.

наверняка ты что-то там ручками шаловливыми крутил, скажи честно?

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

Похоже на взлом. Что на сервере хостится? Есть ли сайты на ПХП и тд? Смотрит ли в инет? Типичный хаксорский прием — запуск скриптов из под пользователя apache/www-data/nobody с именем процесса веб-сервера чтобы замаскировать. Зря не узнали в чем дело, может повториться.

Читайте также:  Windows server 2019 vpn туннель

может, проблема в том, что апач при старте первым процессом спавнит еще несколько раз себя. А при остановке через /etc/init.d/apache2 stop эти процессы не умерли вместе с основным процессом.

В htop можно посмотреть, кто кого породил (режим F5-Tree).

Ну ты прям в тему, у меня аналогичная история на одном из стендов, только с IBM WebSphere. Пошел по быдло-методу:

но потом их еще и убивать надо скопом! Не руками! Хорошо бы иметь утилиты для работы с деревом реальных процессов (а не пидов), н-р кроме убийства смену приоритета для дерева

а что за ведро? Может, это баг нового ведра?

спасибо за скрипт!

Не думаю, что тут дело в ведре, но вообще:

У тебя просто приколбасило систему, смотри на предмет глюков железа под высокой нагрузкой. Для диагностики нужно видеть содержимое инит-скрипта, я на память не помню. Оно, по-моему, апач не через kill убивает, а посылает сигнал завершения процессам апача, собственно апач убирает свои семафоры, но сам не прибивается, занимая сокет. Отсюда и ноги. Рекомендую потестить память. А вообще неумение сообщать версии используемого ПО — это моветон, зачатки телепатии и опыт присутствуют далеко не у всех.

* There are processes named ‘apache2’ running which do not match your pid file which are left untouched in the name of safety, Please review the situation by hand.

Вообще еще и читать следует научиться.

я могу дать выхлоп всего состояния системы, но от объема этого текста сервер ЛОРа перегреется и сгорит)

это тебе читать следует научиться 🙂 я не спрашивал, почему инитскрипт апача не может его убить. Да насрать на это вообще, я привык, написатели пакетов в убунте упарываются чем-то походу. Удивительно, почему не работает ни одна из утилит для kill кроме непосредственно kill -9, и почему не прибиваются потомки основного процесса апача при смерти родителя.

Достаточно — дистр, версию апача и ядрышка с glibc. Хотя в данном случае дистр не нужен — такое же поведение при High load бывало у меня на центоси. А как выяснилось, та не в курсе, как работает kill.

В общем дело в чем, init-скрипт в убунте написан правильно. Теперь я расскажу тебе, как работает kill.

Команда kill process просто посылает сигнал завершения работы заданному процессу. Т.е. закрытие процесса должно произойти благодаря его собственным стараниям: апач при этой команде должен подчистить свои .pid и завершиться. Но что-то пошло не так и .pid исчезли, а вот процесс остался висеть. Для работы команды kill важно соответствие .pid имени процесса, в противном случае это означает либо скомпрометированную систему, либо еще чего, для чего требуется вмешательство системного администратора. Команда kill process -9 пришибет процесс практически в любом случае, так как здесь уже посылается сигнал не процессу, а конкретно ядру. Т.е. уже механизмы другие и завершает процесс ядро. Поэтому по PID оно убивается через kill, для всех остальных операций для послания корректного сигнала нужно существование файлега .pid или .sock и т.п., сигнализирующего что сокет занят конкретным процессом с конкретным processID. Поэтому команда killall не в состоянии найти соответствие PID имени процесса, а команда kill -9 пославшая ядру KILL PID xxx — отрабатывает.

Читайте также:  Иконка java для windows

Оюъяснил как смог.

Но что-то пошло не так и .pid исчезли, а вот процесс остался висеть

.pid и не появлялись. При старте он делает .pid только на основной процесс, тот что исполняется от рута.

3.11.0-11-generic #17-Ubuntu SMP, Apache/2.4.6 (Ubuntu), loaded modules = core mod_so mod_watchdog http_core mod_log_config mod_logio mod_version mod_unixd mod_unixd mod_access_compat mod_alias mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_host mod_authz_user mod_autoindex mod_deflate mod_dir mod_env mod_filter mod_mime prefork mod_negotiation mod_perl mod_php5 mod_rewrite mod_setenvif mod_status.

спасибо! а есть программы, которые сразу обращаются к ведру, покладывая прибор на программу?

Ну это чайлды апача, они свои .pid и не создают. Они должны мониторитсья головным процессом. Насколько я понимаю, в вашем случае могли сработать kill -9 /usr/bin/apache2 -a и killall /usr/sbin/apache2 -e

немного поразмыслил и пришел к выводу, что просто апач прибивался и не убивал своих чайлдов. Не mpm_worker случаем?

Источник

Linux / UNIX: Find out or determine if process pid is running

H ow do I find out my process is running on a Unix-like operating systems? How do I get the pid number for particular process on a Linux operating systems using bash shell?

A PID is an acronym for process identification number on a Linux or Unix-like operating system. A PID is automatically assigned to each process when it is created. A process is nothing but running instance of a program and each process has a unique PID on a Unix-like system.[donotprint]

Tutorial details
Difficulty level Easy
Root privileges No
Requirements None
Est. reading time 2m

[/donotprint]

The easiest way to find out if process is running is run ps aux command and grep process name. If you got output along with process name/pid, your process is running.

Task: Find out process pid

Simply use ps command as follows:
ps aux | grep

For example find out if mysqld process (mysqld pid) is running or not:
$ ps aux | grep mysqld
Sample outputs:

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

Find the process ID of a running program using pidof

pidof command finds the process id’s (pids) of the named programs. It prints those id’s on screen. This program is on some systems used in run level change scripts, especially when the system has a System-V like rc structure. In that case these scripts are located in /etc/rc?.d, where ? is the runlevel. If the system has a start-stop-daemon (8) program that should be used instead.
# pidof mysqld
Sample outputs:

Find PID using pgrep command

The pgrep command searches the running system and shows the process IDs of all processes that match the given criteria. The syntax is:
pgrep pgrep firefox
pgrep httpd
pgrep nginx
Sample outputs:

🐧 Get the latest tutorials on Linux, Open Source & DevOps via

Источник

Оцените статью