LINUX.ORG.RU
ФорумAdmin

запуск программы и ее пид


0

0

Извиняюсь за потовторение данной ветки - но предложеные варианты не канают :

pidof выдает мне кучу пидов проги myprog .

Но мне надо знать пид проги myprog -parametr1
отдельно myprog -peremetr2

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

Второй вариант не работает :

#!/bin/sh

echo $$ >/var/run/myprog.pid exec /usr/local/bin/myprog

Прога myprog не запускается и вместо нужно результата я имею в файле myprog.pid :

2345 exec /usr/local/bin/myprog

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

Хелп .

anonymous
Ответ на: комментарий от PashaKustov

заработало - но не правильно

пид в файле не еденицу меньше

и программа запускается некорректно . все параметры дублируются по 2-3 раза . Глюк конкретный :(

А есть какие либо варианты через ps ?

вот я знаю что программа запускалась как myprog -1 -2 -3 -4

а вторая копия запускалася как myprog -456

Как можно выдрать из ps их пид и скинуть в файл если я знаю _КАК_ она запускалась - т.е. какая была commandline .

anonymous
()
Ответ на: комментарий от anonymous

Ну во-первых можешь попробовать вот так:

#!/bin/sh

(echo $$ > /var/run/myprog.pid) && (exec /usr/bin/myprog)

Во-вторых, кто мешает непосредственно из программы вызвать getpid() и записать pid в файл?

PashaKustov ★★
()
Ответ на: комментарий от anonymous

вариант с ( ) еще хуже . пид отличается уже на 3 еденицы и прога не работает , все параметры проги троятся-двоятся-четвырятся . Видно по ps , так что этот вариант походу совсем не подходит .

прога vlc .

anonymous
()
Ответ на: комментарий от anonymous

Остается последнее, и самое надежное средство-оперировать ps и grep после запуска программы. Раз уж известно, что программа всегда запускается с разными параметрами и эти параметры известны, то процесслист не трудно отгрепать так, чтобы получились ожидаемые единичные результаты. А уж вырезать из строчки пид несложно тем же awk.

anonymous
()
Ответ на: комментарий от anonymous

последний вариант тоже пробывал , но для влц не прошло . пид пуст

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.