Есть ли способ узнать, работает ли текущий пользователь сеанса с Xserver (под Linux)?
Я начал с таких вещей, как:
ps -e | grep X
но это не всегда работает
и еще одна вещь, которую я попробовал, это проверка переменной $DISPLAY
Есть ли другие способы проверить это?
EDIT:
Некоторые люди предлагали использовать переменные $ DISPLAY, но что если пользователь возится с этой переменной? Что делать, если он пытается что-то сделать и изменяет эту переменную, а затем, когда я проверяю ее, она больше не отражает точное состояние системы.
Нет ли конкретного способа сделать это, который всегда будет давать правильный ответ?
Я обнаружил, что это можно сделать программно таким образом:
#include <X11/Xlib.h>
int main()
{ exit(XOpenDisplay(NULL) ? 0 : 1); }
$ gcc -o xprobe xprobe.c -L/usr/X11R6/lib -lX11
Но я ищу сценарий.