Почему вершина и PS показывают другой PIDs для тех же процессов?

  • /dev/console виртуальный набор устройств, которые могут быть установлены в качестве параметра во время начальной загрузки. Это могло бы быть перенаправлено к последовательному устройству или виртуальной консоли и точками по умолчанию к /dev/tty0. Когда несколько console= опции передаются ядру, консольный вывод перейдет больше чем к одному устройству.

  • /dev/tty0 текущая виртуальная консоль

  • /dev/tty[1-x] одна из виртуальных консолей, на которые Вы переключаетесь с control-alt-F1 и так далее.

  • /dev/tty вид псевдонима к консоли (физическое, виртуальное или псевдоустройство, если таковые имеются) связанный с процессом, которые открывают его. В отличие от других устройств, Вам не нужны полномочия пользователя root записать в него. Обратите внимание также что процессы как те запущенные cron и подобные пакетные обработки имеют не применимый /dev/tty, поскольку они не связаны ни с кем. Эти процессы имеют a ? в TTY столбец ps -ef вывод.

11
28.11.2013, 20:58
3 ответа

Они на самом деле показывают ту же информацию по-разному. Это что -f и -L опции к ps сделайте (от man ps, шахта акцента):

- f              Делают список полных форматов. Эта опция может быть объединена со многими другими параметрами стиля UNIX для добавления дополнительных столбцов. Это также заставляет аргументы команды быть распечатанными. При использовании с-L, NLWP (количество потоков) и LWP (идентификатор потока), столбцы будут добавлены.

- L              Выставочные потоки, возможно со столбцами LWP и NLWP.

tid              TID уникальное число, представляющее dispatacable объект (искажают lwp, spid). Это значение может также появиться как: идентификатор процесса (pid); идентификатор группы процесса (pgrp); идентификатор сессии для лидера сессии (sid); идентификатор группы потока для лидера группы потока (tgid); и tty обрабатывает идентификатор группы для лидера группы процесса (tpgid).


Так, ps покажет идентификаторы потока в LWP столбец, в то время как PID столбец является фактическим идентификатором процесса.

top с другой стороны, перечисляет различные потоки в PID столбец, хотя я не могу найти явное упоминание об этом в man top.

10
27.01.2020, 19:59

Это - просто различие в презентации. Посмотрите на LWP столбец на Вашем ps вывод- LWP LightWвосемь Pперерыв. Ядро может различать полный процесс и поток, но оно все еще должно запланировать их независимо (что, будучи целью потока) с тем же механизмом, который оно использует для планирования процессов и так идентификатор, который видит планировщик, должны быть уникальными, лучше всего достигнутый при наличии единственного пула процесса и распараллелить идентификатор для каждой цели и использования других способов сказать эти два вида независимо.

2
27.01.2020, 19:59

Вы видите родительский процесс 1424, процесс, который создал один или несколько дочерних процессов (the other PIDs).

-2
27.01.2020, 19:59
  • 1
    Они не дочерние процессы, они - потоки ядра того же процесса. –  Gilles 'SO- stop being evil' 29.11.2013, 01:27

Теги

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