Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот процесс запустился и сохранить это в переменной???
Если кто знает буду очень признателен
>Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот
>процесс запустился и сохранить это в переменной???
>Если кто знает буду очень признателенps x |grep PROCESS_NAME не спасет отца русской демократии?
>>Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот
>>процесс запустился и сохранить это в переменной???
>>Если кто знает буду очень признателенpid=$!
>>Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот
>>процесс запустился и сохранить это в переменной???
>>Если кто знает буду очень признателен
>
>ps x |grep PROCESS_NAME не спасет отца русской демократии?Совершенно не спасает, т.к. выдает целую строку где много ишнего и это лишнее очень мешает
>> pid=$!, $!, $$ - также не помогает, т.к. если все это рулит из стартовых скриптов, когда запускается куча процессов - выдает не правильный pid
>>> 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
>[оверквотинг удален]
>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 ppp0echo $PID1
160
>[оверквотинг удален]
>PID1=$!
>........
>
>
>если ребутнуть ОС получается примерно такая картина:
>ps x|natd
>159 ?? 1:33,58 /sbin/natd -n ppp0
>
>echo $PID1
>160А Вы уберите из стартовых скриптов запуск natd, раз Вы его (пере)запускаете из своего скрипта. Тогда всё у Вас будет в порядке. ;) Ну и man sh на предмет переменной $! читать до полного просветления!
>[оверквотинг удален]
>>ps x|natd
>>159 ?? 1:33,58 /sbin/natd -n ppp0
>>
>>echo $PID1
>>160
>
>А Вы уберите из стартовых скриптов запуск natd, раз Вы его (пере)запускаете
>из своего скрипта. Тогда всё у Вас будет в порядке. ;)
>Ну и man sh на предмет переменной $! читать до полного
>просветления!А его из стартовых скриптов и не запускаю!!!!
>[оверквотинг удален]
>PID1=$!
>........
>
>
>если ребутнуть ОС получается примерно такая картина:
>ps x|natd
>159 ?? 1:33,58 /sbin/natd -n ppp0
>
>echo $PID1
>160Это естественно, т.к. ты не natd в фоне запускаешь, а он сам форкается. Посмотри, нет ли у него опции -P.
>[оверквотинг удален]
>>
>>если ребутнуть ОС получается примерно такая картина:
>>ps x|natd
>>159 ?? 1:33,58 /sbin/natd -n ppp0
>>
>>echo $PID1
>>160
>
>Это естественно, т.к. ты не natd в фоне запускаешь, а он сам
>форкается. Посмотри, нет ли у него опции -P.нет у него опции -P.
дело в том, что когда стартует ip-up и дело доходит до /sbin/natd -n ppp0 система еще загрузается, запускаеца множество процессов и $! опаздывает маленько...
>>Это естественно, т.к. ты не natd в фоне запускаешь, а он сам
>>форкается. Посмотри, нет ли у него опции -P.
>
>нет у него опции -P.
>дело в том, что когда стартует ip-up и дело доходит до /sbin/natd
>-n ppp0 система еще загрузается, запускаеца множество процессов и $! опаздывает
>маленько...Во-первых, ты бы все же написал, что у тебя за система.
Во-вторых, не может там ничего запаздывать, система детерминирована. А причину "запаздывания" я тебе уже описал.
>[оверквотинг удален]
>>
>>нет у него опции -P.
>>дело в том, что когда стартует ip-up и дело доходит до /sbin/natd
>>-n ppp0 система еще загрузается, запускаеца множество процессов и $! опаздывает
>>маленько...
>
>Во-первых, ты бы все же написал, что у тебя за система.
>
>Во-вторых, не может там ничего запаздывать, система детерминирована. А причину "запаздывания" я
>тебе уже описал.FreeBSD
>FreeBSDОбнови систему, в новых -P есть, или ищи свой процесс grep'ом (во время старта системы это можно себе позволить).
>>FreeBSD
>
>Обнови систему, в новых -P есть, или ищи свой процесс grep'ом (во
>время старта системы это можно себе позволить).Кинь аську, пообщаемся на эту тему!
>>>FreeBSD
>>
>>Обнови систему, в новых -P есть, или ищи свой процесс grep'ом (во
>>время старта системы это можно себе позволить).
>
>Кинь аську, пообщаемся на эту тему!Лень мне ее запускать. Можешь на мыло dev@26th.net
>Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот
>процесс запустился и сохранить это в переменной???
>Если кто знает буду очень признателен$!
pgrep PROCESS_NAME
>Запускаю из Shell нужный мне процесс. Как узнать номер, под которым этот
>процесс запустился и сохранить это в переменной???
>Если кто знает буду очень признателенpidof ?