Как получить Родительский PID данного процесса в GNU / Linux из командной строки?

решено перед вопросом:cat /proc/1111/status | grep PPid

17
задан Vi.
22.01.2023 9:48 Количество просмотров материала 3505
Распечатать страницу

9 ответов

Командная строка:

ps -o ppid= -p 1111

функция:

ppid () { ps -p ${1:-$$} -o ppid=; }

Alias (функция желательно):

alias ppid='ps -o ppid= -p'

сценарий:

#!/bin/sh
pid=
if [ -z $pid ]
then
    read -p "PID: " pid
fi
ps -p ${pid:-$$} -o ppid=

если для функции или скрипта не указан PID, по умолчанию они показывают PPID текущего процесса.

для использования псевдонима необходимо указать PID.

92
отвечен Dennis Williamson 2023-01-23 17:36

Это одна из тех вещей, которые я узнал, забыть, вспомнить, повторить. Но это действительно полезно. Флаг ‘s ' команды pstree показывает дерево с листом в N:

pstree -sA $(pgrep badblocks)
systemd---sudo---mkfs.ext4---badblocks
11
отвечен user194394 2023-01-23 19:53

Родительский pid находится в переменной оболочки PPID, поэтому

echo $PPID
11
отвечен Ivan Novotny 2023-01-23 22:10

этого команды:

ps j

напечатает ID родителей (PPID) всех процессов.

для одиночного процесса, как раз пройдите PID, как: ps j 1234.

извлечь только значение, выходной фильтр awk, например:

ps j 1234 | awk 'NR>1 {print }' # BSD ps
ps j 1234 | awk 'NR>1 {print }' # GNU ps

перечислить PIDs всех родителей, а затем использовать pstree, например:

$ pstree -sg 1234
systemd(1)───sshd(1036)───bash(2383)───pstree(3007)

чтобы получить Родительский PID текущего процесса, используйте echo $$.

6
отвечен kenorb 2023-01-24 00:27

Read/proc/$PID / status. Можно легко написать сценарий:

#!/bin/sh
P=
if [ -z "$P" ]; then
    read P
fi
cat /proc/"$P"/status | grep PPid: | grep -o "[0-9]*"
5
отвечен Vi. 2023-01-24 02:44

В Linux:

ps hoppid $thatprocess
3
отвечен jthill 2023-01-24 05:01
$ ps -p $(ps -p $(echo $$) -o ppid=) -o comm=
    tmux

немного более сложный пример, проверяющий команду родителя, запустившего текущий процесс Измените comm= на cmd=, чтобы увидеть full command

2
отвечен sebastian_t 2023-01-24 07:18

вот быстрое решение, которое также должно работать:

ps $$
1
отвечен Gevork Palyan 2023-01-24 09:35

Run top с любыми вариантами вы хотите, как -u username and -p PID.

и А top работает клавишу f, оно показывает список опций, которые вы хотите отобразить в top выход, и показанные параметры будут показаны в прописных буквах и параметрах которые или не показ будет показан в маленьких буквах.

таким образом, введя букву перед параметром вы можете включить или отключить его. Для ID родительского процесса необходимо ввести b а затем нажмите Enter, оно покажет PPID в верхнем выходе.

1
отвечен Praveen S. 2023-01-24 11:52

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх