Python скрипт для проверки активности сервера openvpn или его отсутствия - PullRequest
2 голосов
/ 18 февраля 2020

Я смотрю на программу python, которая проверит, действительно ли работает список удаленных серверов openvpn !! Я попробовал следующий код, но не повезло. после подключения сервера vpn управление не возвращается для выполнения следующей строки, если не нажата ctrl+c. Как проверить ниже:

  • Если openvpn подключается к серверу, напечатайте активное сообщение
  • В противном случае напечатайте не активное сообщение.
  • Все это в 101 * * и я хочу работать в виртуальной среде.

Код указан ниже

    path = tempfile.mkstemp()
    print('Path:',path)
    f = open(path, 'w')
    f.write(base64.b64decode(winner[-1]).decode('utf-8'))

    f.close()
    x = subprocess.Popen(['sudo', 'openvpn', '--config', path])
    print("\n\n Pid:",x.pid)
    try:
        print('############ inside try block############', x.pid)
        while True:
            print('############ inside while try block############', x.pid)
            time.sleep(60)

            if (x.wait() == 0):
                # died_serv_list.append(winner)
                print('\nDead server found....Exiting.....\n')
                return 
            print('############terminating the current prosses############', x.pid)
            x.send_signal(9)
            # y = subprocess.Popen(['sudo', 'kill', '-9', x.pid])
            break
        # termination with Ctrl+C
    except: #here issue only works with ctrl+C
        try:
            print('\n\n\n Nice server found...\n\n')
            good_serv_list.append(winner)
            print('we are inside exept.')
            x.kill()
        except:
            pass
        while x.poll() != 0:
            print('\n\n Donot know what the hell is this')
            time.sleep(1)
        print('\nVPN terminated')
...