Перезагрузка удаленного сервера Ubuntu через Python 2.7 - PullRequest
0 голосов
/ 25 февраля 2019

Может кто-нибудь сообщить мне, как я могу перезагрузить удаленный сервер через Python?

Я попробовал следующую команду: -

os.system('sudo ssh -q -i /home/support/.ssh/id_rsa_vnera_cluster_keypair -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null support@a.b.c.d "sudo -S su ubuntu -c 'sudo reboot --force'"')

Но мой код застрял в приведенной выше команде в ожиданиидля ответа, поскольку команда reboot ничего не возвращает.

  • ОС - Ubuntu 16.04
  • Python 2.7.12

1 Ответ

0 голосов
/ 25 февраля 2019

2 идеи для вас:

  1. Попробуйте использовать nohup в командной строке, которую вы отправляете на удаленный сервер.
  2. Вместо использования os.system (синхронно) используйтеsubprocess.Popen() (который может использоваться синхронно или асинхронно) следующим образом:
import subprocess as sp

p = sp.Popen(['sudo', 'ssh', '-q' ...])  # complete the list with the rest of your remote command

p.wait()    # if you want to wait.  Can include a timeout in wait().
...