URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 78455
[ Назад ]

Исходное сообщение
"Номер процесса"

Отправлено Merlin_ua , 28-Янв-08 19:55 
Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот процесс запустился и сохранить это в переменной???
Если кто знает буду очень признателен

Содержание

Сообщения в этом обсуждении
"Номер процесса"
Отправлено sergey.shkolin , 28-Янв-08 20:12 
>Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот
>процесс запустился и сохранить это в переменной???
>Если кто знает буду очень признателен

ps x |grep PROCESS_NAME  не спасет отца русской демократии?


"Номер процесса"
Отправлено Serge , 28-Янв-08 20:35 
>>Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот
>>процесс запустился и сохранить это в переменной???
>>Если кто знает буду очень признателен

pid=$!


"Номер процесса"
Отправлено Merlin_ua , 29-Янв-08 10:58 
>>Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот
>>процесс запустился и сохранить это в переменной???
>>Если кто знает буду очень признателен
>
>ps x |grep PROCESS_NAME  не спасет отца русской демократии?

Совершенно не спасает, т.к. выдает целую строку где много ишнего и это лишнее очень мешает

>> pid=$!,  $!, $$ - также не помогает, т.к. если все это рулит из стартовых скриптов, когда запускается куча процессов - выдает не правильный pid


"Номер процесса"
Отправлено angra , 29-Янв-08 11:15 
>>> pid=$!,  $!, $$ - также не помогает, т.к. если все это рулит из стартовых скриптов, когда запускается куча процессов - выдает не правильный pid

А можно пример в котором $! неправильно срабатывает? У меня например все работает:

$ cat t.sh
#/bin/bash
sleep 10&
echo $!
ps ax|grep sleep
sleep 10&
echo $!
ps ax|grep sleep

$ ./t.sh
3982
3982 pts/8    S+     0:00 sleep 10
3985
3982 pts/8    S+     0:00 sleep 10
3985 pts/8    S+     0:00 sleep 10
3987 pts/8    S+     0:00 grep sleep


"Номер процесса"
Отправлено Merlin_ua , 29-Янв-08 11:57 
>[оверквотинг удален]
>3982
> 3982 pts/8    S+     0:00
>sleep 10
>3985
> 3982 pts/8    S+     0:00
>sleep 10
> 3985 pts/8    S+     0:00
>sleep 10
> 3987 pts/8    S+     0:00
>grep sleep

Можно конечно

/etc/ppp/ip-up
.......
/sbin/natd -n "$1"
PID1=$!
........


если ребутнуть ОС получается примерно такая картина:
ps x|natd
159 ?? 1:33,58 /sbin/natd -n ppp0

echo $PID1
160


"Номер процесса"
Отправлено newser , 29-Янв-08 12:00 
>[оверквотинг удален]
>PID1=$!
>........
>
>
>если ребутнуть ОС получается примерно такая картина:
>ps x|natd
>159 ?? 1:33,58 /sbin/natd -n ppp0
>
>echo $PID1
>160

А Вы уберите из стартовых скриптов запуск natd, раз Вы его (пере)запускаете из своего скрипта. Тогда всё у Вас будет в порядке. ;) Ну и man sh на предмет переменной $! читать до полного просветления!


"Номер процесса"
Отправлено Merlin_ua , 29-Янв-08 12:12 
>[оверквотинг удален]
>>ps x|natd
>>159 ?? 1:33,58 /sbin/natd -n ppp0
>>
>>echo $PID1
>>160
>
>А Вы уберите из стартовых скриптов запуск natd, раз Вы его (пере)запускаете
>из своего скрипта. Тогда всё у Вас будет в порядке. ;)
>Ну и man sh на предмет переменной $! читать до полного
>просветления!

А его из стартовых скриптов и не запускаю!!!!


"Номер процесса"
Отправлено dev , 29-Янв-08 13:06 
>[оверквотинг удален]
>PID1=$!
>........
>
>
>если ребутнуть ОС получается примерно такая картина:
>ps x|natd
>159 ?? 1:33,58 /sbin/natd -n ppp0
>
>echo $PID1
>160

Это естественно, т.к. ты не natd в фоне запускаешь, а он сам форкается. Посмотри, нет ли у него опции -P.


"Номер процесса"
Отправлено Merlin_ua , 29-Янв-08 14:58 
>[оверквотинг удален]
>>
>>если ребутнуть ОС получается примерно такая картина:
>>ps x|natd
>>159 ?? 1:33,58 /sbin/natd -n ppp0
>>
>>echo $PID1
>>160
>
>Это естественно, т.к. ты не natd в фоне запускаешь, а он сам
>форкается. Посмотри, нет ли у него опции -P.

нет у него опции -P.
дело в том, что когда стартует ip-up и дело доходит до /sbin/natd -n ppp0 система еще загрузается, запускаеца множество процессов и $! опаздывает маленько...


"Номер процесса"
Отправлено dev , 29-Янв-08 15:17 
>>Это естественно, т.к. ты не natd в фоне запускаешь, а он сам
>>форкается. Посмотри, нет ли у него опции -P.
>
>нет у него опции -P.
>дело в том, что когда стартует ip-up и дело доходит до /sbin/natd
>-n ppp0 система еще загрузается, запускаеца множество процессов и $! опаздывает
>маленько...

Во-первых, ты бы все же написал, что у тебя за система.

Во-вторых, не может там ничего запаздывать, система детерминирована. А причину "запаздывания" я тебе уже описал.


"Номер процесса"
Отправлено Merlin_ua , 29-Янв-08 18:27 
>[оверквотинг удален]
>>
>>нет у него опции -P.
>>дело в том, что когда стартует ip-up и дело доходит до /sbin/natd
>>-n ppp0 система еще загрузается, запускаеца множество процессов и $! опаздывает
>>маленько...
>
>Во-первых, ты бы все же написал, что у тебя за система.
>
>Во-вторых, не может там ничего запаздывать, система детерминирована. А причину "запаздывания" я
>тебе уже описал.

FreeBSD


"Номер процесса"
Отправлено dev , 29-Янв-08 18:49 
>FreeBSD

Обнови систему, в новых -P есть, или ищи свой процесс grep'ом (во время старта системы это можно себе позволить).


"Номер процесса"
Отправлено Merlin_ua , 30-Янв-08 19:08 
>>FreeBSD
>
>Обнови систему, в новых -P есть, или ищи свой процесс grep'ом (во
>время старта системы это можно себе позволить).

Кинь аську, пообщаемся на эту тему!


"Номер процесса"
Отправлено dev , 30-Янв-08 19:18 
>>>FreeBSD
>>
>>Обнови систему, в новых -P есть, или ищи свой процесс grep'ом (во
>>время старта системы это можно себе позволить).
>
>Кинь аську, пообщаемся на эту тему!

Лень мне ее запускать. Можешь на мыло dev@26th.net


"Номер процесса"
Отправлено dev , 28-Янв-08 20:22 
>Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот
>процесс запустился и сохранить это в переменной???
>Если кто знает буду очень признателен

$!


"Номер процесса"
Отправлено Volody , 29-Янв-08 09:53 
pgrep PROCESS_NAME

"Номер процесса"
Отправлено konst , 29-Янв-08 21:12 
>Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот
>процесс запустился и сохранить это в переменной???
>Если кто знает буду очень признателен

pidof ?