PID создается с системой ()

я являюсь новым в человечности. Я создаю программу с, открывает 2/4/8 новый процесс в отдельных терминалах. Используя систему (). Как я могу получить PID их или изменить хорошее значение, с помощью другого терминала?

0
задан 22 November 2014 в 21:55

1 ответ

Обычно pidof(8) и в более сложных случаях pgrep(1) превосходные инструменты должны найти идентификатор некоторых процессов.

Если Вы хотите найти всех детей конкретного процесса, необходимо вырыть через /proc файловая система самостоятельно. Давайте предположим поиск детей процесса 2345:

for PROCSTAT in /proc/[0-9]*/stat; do
    read -r PID PROCNAME STATUS PPID TAIL < $PROCSTAT
    if [ $PPID -eq 2345 ]; then
        echo $PID
    fi
done

Если Вы принимаете решение использовать

system("foobar");

вместо

if (fork() == 0) {
    execlp("foobar", "foobar", NULL);
}

это на самом деле породит два процесса: /bin/sh как прямой ребенок и foobar как внук.

1
ответ дан 6 October 2019 в 19:46

Другие вопросы по тегам:

Похожие вопросы: