Как узнать pid запускаемой программы из скрипта.

Для примера я написал скрипт test.sh, где ищем pid для запускаемой команды sleep в место нее может быть запущена любая программа.

$ cat test.sh
#!/bin/sh
#в переменной $$ находится pid этого скрипта
echo "pid скрипта = "$$
#Для примера запустим команду sleep на 5 мин. в переменной $! будет pid запущенной нами команды
sleep 300 &
pid=$!
echo "pid="$pid
ps waux | grep $pid | grep -v grep
#или так, в этом примере sleep будет 10 мин для отличия
sleep 600 1>/dev/null 2>&1 &
pid=$!
echo "pid="$pid
ps waux | grep $pid | grep -v grep

Запустим скрипт test.sh:

$ sh test.sh
pid скрипта = 9959
pid=9960
rrv       9960  0.0  0.0   9728   828 pts/2    S+   20:58   0:00 sleep 300
pid=9964
rrv       9964  0.0  0.0   9728   824 pts/2    S+   20:58   0:00 sleep 600

Leave a Reply