идентификатор / идентификатор процесса анализа из / proc, идентификаторы потоков

Когда я обрабатываю идентификаторы процессов из / proc, очевидно, что каждый поток процесса получает свой собственный идентификатор. И я понимаю, что все потоки в том же процессе могут быть собраны из /proc/${pid}/task/ .

Но мой вопрос: могу ли я предположить, что первый идентификатор в списке (самый низкий номер один?) Является основным потоком процесса?

Цель, которую я в конечном счете пытаюсь сделать, – написать быстрый скрипт ps в python без использования подпроцесса или вызова оболочки.

  • В Debian, как я могу добавить пакет Python в dist-packages к virtualenv?
  • Использование jq для извлечения значений и форматирования в CSV
  • Извлечь значение смещения ntpdate в переменной в python
  • python == python2 ИЛИ python == python3? Как упаковать, распространять скрипты python py2k?
  • Python.h: Нет такого файла или каталога
  • У меня есть несколько python на моем компьютере? и как удалить один из них?
  • Разная версия Python не может найти модули
  • Python 2.7 на CentOS 5
  • One Solution collect form web for “идентификатор / идентификатор процесса анализа из / proc, идентификаторы потоков”

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

    Вы можете получить идентификатор группы потоков (который является идентификатором процесса) из /proc/${id}/status . Это в строке Tgid: nnnnn .

    Пример:

     $ cat /proc/8288/status Name: vlc State: S (sleeping) Tgid: 8281 // main vlc process id Pid: 8288 // thread id 
    Linux и Unix - лучшая ОС в мире.