LinuxForum.Fans
Тема

Как программно узнать pid процесса по его имени?

Автор: Legion 13 сообщений 13509 просмотров
#83490

Как программно узнать pid процесса по его имени?

#83503
text

ps -e | grep <имя>

подробнее об опциях команды ps :

text

man ps

пример :
[console]
root@host:~# ps -e | grep firefox
10488 ? 00:00:00 firefox
10505 ? 00:00:10 firefox-bin
[/console]

#83505

gramozeka, мне и сказать нечего... плюсую...

#83523

Вопрос в разделе программирование, поэтому автор, вероятно, хотел узнать как определить pid из своей програмы.

можно, конечно вызвать ps из программы но это слишком коряво, наверняка есть соответствующий системный вызов (если кто знает подскажите).

В крайнем случае можно прочитать каталог proc там есть для каждого процесса ссылка exe на имя исполняемого файла .

#83555
xbill написал:
Вопрос в разделе программирование, поэтому автор, вероятно, хотел узнать как определить pid из своей програмы.

bash это не ЯП? это мы здесь обсудим: http://linuxforum.ru/viewtopic.php?id=3817

что касается C, то далеко ходить не надо:

GETPID(2) Linux Programmer's Manual GETPID(2)

NAME
getpid, getppid - get process identification

вы разве не поставили вместе с gcc ещё и мануал? зря...
Какой именно ЯП интересует?

#83558

PS:
в man'е есть поиск:

text
$ man -k pid

и есть секции:

MANUAL SECTIONS
The standard sections of the manual include:
1 User Commands
2 System Calls
3 C Library Functions
4 Devices and Special Files
5 File Formats and Conventions
6 Games et. Al.
7 Miscellanea
8 System Administration tools and Deamons

Отныне любой обращённый ко мне вопрос, я буду расценивать как объявленье войны.
(С)СашБаш
(если ответ на него за 0.1 секунду берётся в мане)
ну или пишите: "начальник запретил Linux, сижу в windows, ссылку на man'ы забыл, в гугле забанили"

;)

#83670

Ещё pidof.

Пётр.

#83671
xbill написал:
Вопрос в разделе программирование, поэтому автор, вероятно, хотел узнать как определить pid из своей програмы.

можно, конечно вызвать ps из программы но это слишком коряво, наверняка есть соответствующий системный вызов (если кто знает подскажите).

В крайнем случае можно прочитать каталог proc там есть для каждого процесса ссылка exe на имя исполняемого файла .

Да пожалуй через proc самое то.

#83697
xbill написал:
Вопрос в разделе программирование, поэтому автор, вероятно, хотел узнать как определить pid из своей програмы.

можно, конечно вызвать ps из программы но это слишком коряво, наверняка есть соответствующий системный вызов (если кто знает подскажите).

В крайнем случае можно прочитать каталог proc там есть для каждого процесса ссылка exe на имя исполняемого файла .

Я сейчас посмотрел - не для каждого. Вот в status имя программы без пути есть.

Пётр.

#83843
Peter написал:
Я сейчас посмотрел - не для каждого

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

Обычные процессы имеют ссылку на исполняемый файл.

#83850

можно было-бы не смотреть, а почитать (хотя мана тут мало). где-то был мануал на эту тему, там написано не только КАК, но и ПОЧЕМУ (что-то там с безопасностью, не вдавался). в любом случае, если встал такой вопрос, то можно посмотреть исходники ps - она-же как-то узнаёт?

#83892
drBatty написал:
то можно посмотреть исходники ps - она-же как-то узнаёт?

если мне потребуется, то так и сделаю :).

Войдите или зарегистрируйтесь, чтобы ответить.