быстрее: grep PPid status |cut -f2как в time(for((i=0;i<1000;i++));do grep PPid status |cut -f2 >/dev/null;done); Интересно, есть ли что-то еще быстрее?
Водолей Сила
1
@ AquariusPower Так как вы спрашиваете, fgrep работает быстрее, чем grep. fgrep PPid status |cut -f2
jbo5112
sed гораздо быстрее, чем grep и cut:sed -rn '/PPid/ s/^.*:\s+// p' < status
Немного более сложный пример, который проверяет команду родителя, запустившего текущий процесс. Измените comm = на cmd =, чтобы увидеть полную команду.
Это не дает родительский PID, который запрашивал ОП.
Деннис Уильямсон
1
Запуск topс любой опции , которые вы хотите, как -u username and -p PID.
И пока topработает нажатие f, он показывает список опций, которые вы хотите отобразить в topвыходных данных, и отображаемые параметры будут показаны заглавными буквами, а параметры, которые или не отображаются, будут показаны строчными буквами.
Таким образом, введя букву перед параметром, вы можете включить или отключить его. Для ID родительского процесса вы должны ввести bи затем нажать Enter, он будет отображать PPID в верхнем выводе.
grep PPid status |cut -f2
как вtime(for((i=0;i<1000;i++));do grep PPid status |cut -f2 >/dev/null;done)
; Интересно, есть ли что-то еще быстрее?fgrep PPid status |cut -f2
sed -rn '/PPid/ s/^.*:\s+// p' < status
Ответы:
Командная строка:
Функция:
Псевдоним (функция предпочтительнее ):
Автор сценария:
Если PID не предоставлен функции или сценарию, они по умолчанию показывают PPID текущего процесса.
Чтобы использовать псевдоним, необходимо указать PID.
источник
=
Знак не нужен, по крайней мере , на OS X 10.8.2.Это одна из тех вещей, которые я изучаю, забываю, заново изучаю, повторяю. Но это полезно. Флаг 'p' команды pstree показывает дерево с листом в N:
источник
Родительский pid находится в переменной оболочки PPID, поэтому
источник
$PPID
только что решило проблему, на которую Google предложил эту страницу в качестве ответа.Чтобы напечатать родительские идентификаторы (
PPID
) всех процессов, используйте эту команду:Для одного процесса, просто передать PID, как:
ps j 1234
.Чтобы извлечь только значение, отфильтруйте вывод
awk
, например:Чтобы перечислить PID всех родителей, используйте
pstree
(установите его, если у вас его нет):Чтобы получить родительский PID текущего процесса, используйте
echo $$
.источник
pstree
самый хороший, который я видел здесь.ps j
великолепен, потому что он доступен во многих дистрибутивах и легко компонуетсяЧтение / proc / $ PID / статус. Может быть легко написано:
источник
grep '^PPid:' /proc/$1/status | grep -o '[0-9]*'
это все, что тебе нужно. ( Инструменты Unix очень редко делаютif [ -z ]; then read
это.)echo $$ | ppid | ppid | ppid
< /some/file grep | grep | ...
.grep /some/file
В Linux:
источник
Немного более сложный пример, который проверяет команду родителя, запустившего текущий процесс. Измените comm = на cmd =, чтобы увидеть полную команду.
источник
Вот быстрое решение, которое также должно работать:
источник
Запуск
top
с любой опции , которые вы хотите, как-u username and -p PID
.И пока
top
работает нажатие f, он показывает список опций, которые вы хотите отобразить вtop
выходных данных, и отображаемые параметры будут показаны заглавными буквами, а параметры, которые или не отображаются, будут показаны строчными буквами.Таким образом, введя букву перед параметром, вы можете включить или отключить его. Для ID родительского процесса вы должны ввести bи затем нажать Enter, он будет отображать PPID в верхнем выводе.
источник
htop
вы можете настроитьPPID
колонку.