2017-01-04 2 views
2

Ich habe ein Python-Skript auf einer Maschine.Python - aktuelle ssh Verbindung beenden

ich laufen konnte von ihm sowohl SSH-Verbindung und der Konsole der Maschine.

Da das Skript einige IP-Config-Zeug ändert, möchte ich die ssh trennen, bevor die IP-Änderung - auf diese Weise das ssh wird nicht hängen und wird ordnungsgemäß geschlossen werden, bevor die IP-Änderungen.

So - gibt es eine Möglichkeit in Python zu überprüfen, ob das Skript von ssh ausgeführt wird? und wenn ja, um den ssh zu schließen?

+0

Wenn Sie die Maschine kennen, an die Sie sich wenden, können Sie den Hostnamen überprüfen :) –

+0

Wenn Sie die SSH-Verbindung schließen, stoppt das Python-Skript nicht oder bleibt auf der SSH-Maschine? – depperm

+0

Schauen Sie sich [diese Frage] an (http://stackoverflow.com/questions/19762162/check-if-a-python-script-is-running-on-remote-machine) –

Antwort

0

Ich habe keine Linux-Maschine, aber auf einem Mac getestet. Wenn Sie den Befehl who am i eingeben und eine IP-Adresse sehen, befinden Sie sich auf einer SSH-Verbindung. Wenn nicht, bist du an der Konsole. Diese Antwort basiert auf dem folgenden answer.

Auf der Konsole:

$ who am i 
hai  ttys000 Dec 23 13:00 

Auf SSH-Verbindung:

$ who am i 
hai  ttys001 Jan 4 07:41 (192.168.1.19) 

Mit diesen Informationen ist es eine Frage der den Befehl von Python ausgeführt wird und die Ausgabe analysieren.

aktualisieren

Eine andere Methode ist für das Vorhandensein der Umgebungsvariablen SSH_CLIENT oder SSH_TTY nach dem answer hier zu überprüfen.

+0

Danke für Ihre Antwort beenden. und gibt es eine Möglichkeit, alle aktuellen SSH-Verbindungen zu schließen? egal ob ich von einem ssh oder von der Konsole aus arbeite. Ich möchte alle SSH-Verbindungen vor dem Ändern der IP beenden –