J'ai une application qui doit se comporter différemment si elle est exécutée directement à partir de la console Linux. Donc, si un utilisateur se connecte avec SSH pour exécuter FooBar, ou si l'utilisateur se dirige vers la console et se connecte directement pour exécuter FooBar, je veux qu'il fasse quelque chose de différent.Comment savoir si vous utilisez une console Linux par rapport à une session SSH?
Quelle API C dois-je appeler pour faire la différence entre ces deux scénarios? Je pensais que je devrais regarder les informations "tty/pts" (comme ce que je vois quand je lance "ps axf"), mais je ne suis pas certain si c'est la meilleure solution, ni quelle API appeler pour obtenir cette information.
Conseils appréciés. :)
Il existe d'autres moyens d'obtenir une session shell non tty que de se connecter via SSH. Par exemple, maintenant sur mon bureau, j'utilise Konsole dans KDE ... Je suis physiquement sur l'ordinateur, mais il apparaît comme un pty quand je lance 'who'. Est-ce que cela compterait comme une console ou une session "ssh" pour vos buts? Peut-être devriez-vous modifier votre question pour être plus clair. – rmeador
Je pense que vous posez deux questions différentes ... la vraie question semble être de savoir si vous utilisez un terminal X local ou via une session SSH. "Console Linux" signifie généralement la console matérielle accessible avec [Ctrl +] Alt + F2 etc. Ce dernier peut être détecté si $ TERM == "linux". –