У меня есть приложение, которое должно вести себя по-другому, если оно запускается непосредственно из консоли linux. Поэтому, если пользователь подключается к SSH для запуска FooBar, или пользователь переходит к консоли и входит в систему непосредственно для запуска FooBar, я хочу, чтобы он делал что-то другое.Как определить, работает ли в консоли linux в сеансе ssh?
Какой C API мне нужно позвонить, чтобы сообщить разницу между этими двумя сценариями? Я думал, что мне придется посмотреть на информацию «tty/pts» (например, то, что я вижу при запуске «ps axf»), но я не уверен, что это лучшее решение или какой API чтобы получить эту информацию.
Подсказки оценены. :)
Есть и другие способы получения сеанса оболочки без подключения к сети, чем подключение через SSH. Например, прямо сейчас на моем рабочем столе я использую Konsole в KDE ... Я физически на компьютере, но он отображается как pty, когда я запускаю 'who'. Будет ли это считать консоль или сеанс «ssh» для ваших целей? Возможно, вы должны изменить свой вопрос, чтобы быть более ясным. – rmeador
Я думаю, вы спрашиваете о двух разных вещах ... Фактический вопрос заключается в том, как определить, работаете ли вы в локальном терминале X или через сеанс ssh. «Консоль Linux» обычно означает, что аппаратная консоль доступна с помощью [Ctrl +] Alt + F2 и т. Д. Более поздняя версия может быть обнаружена, если $ TERM == «linux». –