2017-01-04 5 views
2

У меня есть скрипт python на машине.python - завершение текущего подключения ssh

Я мог бы запустить его из обоих соединения SSH и консоли машины.

Поскольку скрипт изменяет некоторые свойства конфигурации IP, я хочу отключить ssh перед тем, как изменить IP-адрес - таким образом ssh не будет висеть и будет закрыт должным образом до изменения IP-адреса.

So - есть ли способ в python, чтобы проверить, запущен ли скрипт из ssh? и если так, чтобы закрыть ssh?

+0

Если вы знаете машину, в которой вы находитесь, вы можете проверить имя хоста :) –

+0

, если вы закрываете соединение ssh, скрипт python не остановится или останется на машине ssh? – depperm

+0

Посмотрите на [этот вопрос] (http://stackoverflow.com/questions/19762162/check-if-a-python-script-is-running-on-remote-machine) –

ответ

0

У меня нет машины Linux, но протестирован на Mac. Если вы выдаете команду who am i и видите IP-адрес, вы подключаетесь к ssh-соединению. Если нет, вы на консоли. Этот ответ основан на следующих answer.

На консоли:

$ who am i 
hai  ttys000 Dec 23 13:00 

В связи SSH:

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

С помощью этой информации, речь идет о выполнении команды из Python и разобрать вывод.

Update

Другой метод, чтобы проверить наличие переменной окружения SSH_CLIENT или SSH_TTY, согласно answer здесь.

+0

спасибо за ваш ответ. и есть ли способ закрыть все текущие ssh-соединения? независимо от того, работаю ли я с ssh или с консоли. Я хочу завершить все подключения ssh до изменения ip –