2

Я часто использую VNC на сервере, где мы запускаем много параллельных вычислительно-интенсивных процессов Matlab. Иногда один из моих процессов ведет себя некорректно, что я вижу сверху, но мне трудно разобраться, на каком сеансе VNC он запущен или, более конкретно, на каком дисплее он запущен.

Предположим, я вижу, что PID 8536 выглядит как боров ресурса, и я хочу исследовать. Поскольку это сеанс matlab, я знаю, что где-то может быть открыта IDE, и я хочу проверить, происходит ли что-нибудь важное, прежде чем я его убью.

В прошлом мы несколько неловко решили эту проблему, идентифицировав, с чего был запущен PTY 8536, затем посмотрев на дерево процессов, чтобы выяснить, что запускается в этом контексте, прокрутить вверх и увидеть инициализацию VNC.

Похоже, что должен быть лучший способ для PID -> X Display (или VNC Session).

1 ответ1

2

В файловой системе процесса есть файл с именем Environment, который должен содержать переменные среды, которые установлены для любого заданного PID, включая переменную VNCDESKTOP, которая должна включать номер экрана того процесса, который обрабатывает родительский сеанс VNC.

Это должно отображать информацию:

awk -v 'RS=\0' -F = '$1=="VNCDESKTOP" {print $2}' /proc/$PID/environ

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .