Tengo una aplicación que necesita comportarse de manera diferente si se ejecuta directamente desde la consola de Linux. Entonces, si un usuario se conecta con SSH para ejecutar FooBar, o el usuario se acerca a la consola e inicia sesión directamente para ejecutar FooBar, quiero que haga algo diferente.¿Cómo saber si se ejecuta en una consola de linux frente a una sesión de ssh?
¿Qué API C debo llamar para saber la diferencia entre estos dos escenarios? Estaba pensando que tendría que mirar la información "tty/pts" (como la que veo cuando ejecuto "ps axf"), pero no estoy seguro si esa es la mejor solución, ni qué API llamar para obtener esa información.
Consejos apreciados. :)
hay otras formas de obtener una sesión de shell no tty que conectando a través de SSH. Por ejemplo, ahora mismo en mi escritorio estoy usando Konsole dentro de KDE ... estoy físicamente en la computadora, pero aparece como pty cuando ejecuto 'who'. ¿Esto contaría como una sesión de consola o "ssh" para sus propósitos? Quizás debas editar tu pregunta para que sea más clara. – rmeador
Creo que estás preguntando sobre dos cosas diferentes ... la pregunta real parece ser cómo saber si estás corriendo en una terminal X local o mediante una sesión ssh. "Consola Linux" normalmente significa la consola de hardware a la que se accede con [Ctrl +] Alt + F2, etc. La última se puede detectar si $ TERM == "linux". –