при парсинге идентификатора/имен процесса от/proc распараллельте идентификаторы

Решенный: проблема была, я указал в моем ~/.bashrc LD_LIBRARY_PATH это содержало папку со многими общими библиотеками, некоторые из которых были, вероятно, дубликатами других. Я думаю в своем случае, которым это было ncurses библиотеки.

2
08.06.2011, 20:20
1 ответ

Вы не можете предположить, что, идентификаторы процесса (и распараллеливают идентификаторы) могут быть снова использованы, таким образом, упорядочивание не гарантируется. (Это маловероятно в недавно загруженной системе на 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
3
27.01.2020, 22:07
  • 1
    Это - положительная сторона у повторного использования pids. Не знайте, почему я не думал об этом. Это НАХОДИТСЯ во встроенной, длительной системе. Но новые процессы должны очень редко порождаться так или иначе. Однако $/proc/{pid} / задача будет включать pid потока Поэтому, если/proc/1/task будет иметь записи "1, 3, 5"./proc/3/task/будет также содержать "1, 3, 5". Таким образом, Вы не можете предположить, что $ {pid} является основным идентификатором процесса. –  Falmarri 22.06.2011, 21:18
  • 2
    Вы правы, я не думал, что он сделал это, но он делает. Обновленный с другой возможностью. –  Mat 22.06.2011, 21:31
  • 3
    Это является, вероятно, лучшим, я смогу добраться. Это не все это важное так или иначе. Так достаточно хороший =] –  Falmarri 29.06.2011, 00:35

Теги

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