powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / как портабельно в шеле получить текущий pid?
12 сообщений из 12, страница 1 из 1
как портабельно в шеле получить текущий pid?
    #37778948
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#!/bin/bash

echo $$

(
        read pid rest < /proc/self/stat
        echo "/proc info: $pid"
        echo "\$\$: $$"
        pstree -ap $$
)



read pid rest < /proc/self/stat - только для линуксов, а $BASHPID только для баша
...
Рейтинг: 0 / 0
как портабельно в шеле получить текущий pid?
    #37779082
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$$
не?
...
Рейтинг: 0 / 0
как портабельно в шеле получить текущий pid?
    #37779084
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или не bash нужен ?
...
Рейтинг: 0 / 0
как портабельно в шеле получить текущий pid?
    #37779243
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 05/02/2012 02:14 PM, Андрей Панфилов wrote:

Special Parameters
The shell treats several parameters specially. These parameters may
only be referenced; assignment to them is not allowed.

....

$ Expands to the process ID of the shell. In a () subshell, it
expands to the process ID of the current shell, not the subshell.

(Не знаю, как по POSIX-у).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как портабельно в шеле получить текущий pid?
    #37779326
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

да я уже разобрался, но криво блин как-то:

pid=$(exec sh -c 'echo $PPID')
...
Рейтинг: 0 / 0
как портабельно в шеле получить текущий pid?
    #37779333
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 05/02/2012 05:46 PM, Андрей Панфилов wrote:

> да я уже разобрался, но криво блин как-то:
>
> pid=$(exec sh -c 'echo $PPID')

Так а $$ не подходит ?


Это:
pid=$(exec sh -c 'echo $PPID')

тебе даст PID только что запушенного процесса, дочернего к данному,
который выполнит комманду 'echo $PPID' и тут же убъётся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как портабельно в шеле получить текущий pid?
    #37779340
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 05/02/2012 05:49 PM, MasterZiv wrote:

> Так а $$ не подходит ?

По крайней мере тут он есть :
http://heirloom.sourceforge.net/man/sh.1.html

и здесь тоже:
http://pubs.opengroup.org/onlinepubs/9699919799/
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как портабельно в шеле получить текущий pid?
    #37779355
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivТак а $$ не подходит ?ну по моему примеру вроде видно что не подходит
MasterZivтебе даст PID только что запушенного процесса, дочернего к данномунет, выдаст родительский, что собственно и нужно
...
Рейтинг: 0 / 0
как портабельно в шеле получить текущий pid?
    #37783504
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловMasterZivТак а $$ не подходит ?ну по моему примеру вроде видно что не подходит

не видно

вот же все работает :
Код: sql
1.
2.
3.
4.
5.
#!/bin/bash

echo '$$=' $$
read pid rest < /proc/self/stat
echo "/proc info: $pid"


Код: sql
1.
2.
3.
 ./t2.sh
$$= 22901
/proc info: 22901
...
Рейтинг: 0 / 0
как портабельно в шеле получить текущий pid?
    #37783742
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind,

внимание на круглые скобки
...
Рейтинг: 0 / 0
как портабельно в шеле получить текущий pid?
    #37783767
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, я код не читаю никогда, если рядом написано по-русски.

хотели pid текущего процесса - это $$.
хотели суперпортабельности - это perl и тоже $$.
...
Рейтинг: 0 / 0
как портабельно в шеле получить текущий pid?
    #37783780
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, я реально не понимаю зачем запускать еще один процесс только чтобы взять оттуда pid родителя в переменной $PPID ?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / как портабельно в шеле получить текущий pid?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]