Я предложил реализовать эту функцию в http://brainstorm.ubuntu.com/idea/27164/, но был отмечен как уже реализованный. Может ли кто-то пролить свет на то, как я могу это сделать? Я хотел бы использовать ярлык для конкретного соединения (vpn или широкополосного) на моей панели (один клик).
Я использую cnetworkmanager с этим скриптом python для удобства. Сначала скрипт запускает подключение к локальной сети, затем открывается VPN.
#!/usr/bin/env python
import subprocess
import time
import sys
def getConnectionState():
"""Returns 'CONNECTED' or 'DISCONNECTED'
"""
p = subprocess.Popen("cnetworkmanager --state", shell=True, stdout=subprocess.PIPE)
stdout = p.communicate()
result = stdout[0].split('\n')[0]
return result
def isConnected():
return getConnectionState() == 'CONNECTED'
def connectEthernet(name='myethernet'):
p = subprocess.Popen("cnetworkmanager --activate-connection=user,%s,," % name, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
def connectVPN(name='myvpn'):
p = subprocess.Popen("cnetworkmanager --activate-connection=user,%s,eth0," % name, shell=True)
def timeout():
while True:
time.sleep(0.2)
if isConnected():
break
connectEthernet()
timeout()
connectVPN(sys.argv[1])
Вы должны иметь возможность создавать ярлыки, которые вызывают nmcli для вызова соединений:
nmcli con up id «имя вашего соединения»
Вот результат, когда я запускаю это в терминал в моей системе:
% nmcli con up id "PPTP VPN Testing"
Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/2
state: VPN connecting (3)
state: VPN connecting (getting IP configuration) (4)
Connection activated
NetworkManager имеет интерфейс D-Bus, который вы можете использовать в других программах или сценариях.
Например, мне удалось подключить одно из VPN-подключений моего сетевого администратора, используя следующую команду:
qdbus --system \
org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager \
org.freedesktop.NetworkManager.ActivateConnection \ #-- this is a method
org.freedesktop.NetworkManagerUserSettings \ #-- arg 1
/org/freedesktop/NetworkManagerSettings/4 \ #-- arg 2
/org/freedesktop/NetworkManager/Devices/1 \ #-- arg 3
/ #-- dumb arg 4 (needed for wifi only)
Вы можете просмотреть инфраструктуру D-Bus с помощью инструмента qdbusviewer из пакета qt4-dev-tools. CLI-only qdbus находится в libqt4-dbus.
API D-Bus NetworkManager зарегистрирован здесь.
Когда вы найдете нужные параметры (номер подключения, номер устройства и т. Д.), , вы можете сохранить строки в качестве сценария оболочки и создать панель запуска на панели для быстрого доступа к ней.
Лично я не беспокоюсь и просто делаю два дополнительных щелчка. В конце концов, я не слишком часто подключаюсь к VPN, чтобы страдать от них.
Вы должны иметь возможность создавать ярлыки, которые вызывают nmcli для вызова соединений:
nmcli con up id "имя вашего соединения"
Вот результат, когда я запускаю это в терминале в своей системе:
% nmcli con up id «PPTP VPN Testing» Состояние активного подключения: активирование активного пути подключения: / org / freedesktop / NetworkManager / ActiveConnection / 2 Состояние: подключение VPN (3) состояние: подключение к VPN (получение конфигурации IP) (4) подключение активировано
NetworkManager имеет интерфейс D-Bus, который вы можете использовать в других программах или сценариях.
Например, мне удалось подключить одно из VPN-подключений моего сетевого менеджера, используя эту команду:
qdbus --system \ org.freedesktop.NetworkManager \ / org / freedesktop / NetworkManager \ org.freedesktop.NetworkManager.ActivateConnection \ # - это метод org.freedesktop.NetworkManagerUserSettings \ # - arg 1 / org / freedesktop / NetworkManagerSettings / 4 \ # - arg 2 / org / freedesktop / NetworkManager / Devices / 1 \ # - arg 3 / # - dumb arg 4 (требуется только для Wi-Fi)
Вы можете просмотреть инфраструктуру D-Bus с помощью инструмента qdbusviewer
из пакета qt4-dev-tools
. CLI-only qdbus
из libqt4-dbus
.
API D-Bus NetworkManager зарегистрирован здесь здесь .
]Когда вы найдете необходимые параметры (номер подключения, номер устройства и т. д.), вы можете сохранить строки в качестве сценария оболочки и создать панель запуска на панели для быстрого доступа к ней.
Лично я не беспокойтесь и просто сделайте два дополнительных щелчка. В конце концов, я слишком часто не подключаюсь к VPN, чтобы страдать от них.
Я использую cnetworkmanager с этим скриптом python для удобства. Сценарий сначала запускает подключение к локальной сети, а затем открывает VPN.
#! / Usr / bin / env python import subprocess import time import sys def getConnectionState (): "" "Возвращает" CONNECTED "или ' DISCONNECTED '"" "p = subprocess.Popen (" cnetworkmanager --state ", shell = True, stdout = subprocess.PIPE) stdout = p.communicate () result = stdout [0] .split (' \n ') [ 0] return result def isConnected (): return getConnectionState () == 'CONNECTED' def connectEthernet (name = 'myethernet'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s ,,"% name, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) def connectVPN (name = 'myvpn'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s, eth0," % name, shell = True) def timeout (): while True: time.sleep (0.2) if isConnected (): break connectEthernet () timeout () connectVPN (sys.argv [1])
Я использую cnetworkmanager с этим скриптом python для удобства. Сначала скрипт запускает подключение к локальной сети, затем открывается VPN.
#!/usr/bin/env python
import subprocess
import time
import sys
def getConnectionState():
"""Returns 'CONNECTED' or 'DISCONNECTED'
"""
p = subprocess.Popen("cnetworkmanager --state", shell=True, stdout=subprocess.PIPE)
stdout = p.communicate()
result = stdout[0].split('\n')[0]
return result
def isConnected():
return getConnectionState() == 'CONNECTED'
def connectEthernet(name='myethernet'):
p = subprocess.Popen("cnetworkmanager --activate-connection=user,%s,," % name, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
def connectVPN(name='myvpn'):
p = subprocess.Popen("cnetworkmanager --activate-connection=user,%s,eth0," % name, shell=True)
def timeout():
while True:
time.sleep(0.2)
if isConnected():
break
connectEthernet()
timeout()
connectVPN(sys.argv[1])
Вы должны иметь возможность создавать ярлыки, которые вызывают nmcli для вызова соединений:
nmcli con up id «имя вашего соединения»
Вот результат, когда я запускаю это в терминал в моей системе:
% nmcli con up id "PPTP VPN Testing"
Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/2
state: VPN connecting (3)
state: VPN connecting (getting IP configuration) (4)
Connection activated
NetworkManager имеет интерфейс D-Bus, который вы можете использовать в других программах или сценариях.
Например, мне удалось подключить одно из VPN-подключений моего сетевого менеджера, используя эту команду:
qdbus --system \ org.freedesktop.NetworkManager \ / org / freedesktop / NetworkManager \ org.freedesktop.NetworkManager.ActivateConnection \ # - это метод org.freedesktop.NetworkManagerUserSettings \ # - arg 1 / org / freedesktop / NetworkManagerSettings / 4 \ # - arg 2 / org / freedesktop / NetworkManager / Devices / 1 \ # - arg 3 / # - dumb arg 4 (требуется только для Wi-Fi)
Вы можете просмотреть инфраструктуру D-Bus с помощью инструмента qdbusviewer
из пакета qt4-dev-tools
. CLI-only qdbus
из libqt4-dbus
.
API D-Bus NetworkManager зарегистрирован здесь здесь .
]Когда вы найдете необходимые параметры (номер подключения, номер устройства и т. д.), вы можете сохранить строки в качестве сценария оболочки и создать панель запуска на панели для быстрого доступа к ней.
Лично я не беспокойтесь и просто сделайте два дополнительных щелчка. В конце концов, я слишком часто не подключаюсь к VPN, чтобы страдать от них.
Вы должны иметь возможность создавать ярлыки, которые вызывают nmcli для вызова соединений:
nmcli con up id "имя вашего соединения"
Вот результат, когда я запускаю это в терминале в своей системе:
% nmcli con up id «PPTP VPN Testing» Состояние активного подключения: активирование активного пути подключения: / org / freedesktop / NetworkManager / ActiveConnection / 2 Состояние: подключение VPN (3) состояние: подключение к VPN (получение конфигурации IP) (4) подключение активировано
Я использую cnetworkmanager с этим скриптом python для удобства. Сценарий сначала запускает подключение к локальной сети, а затем открывает VPN.
#! / Usr / bin / env python import subprocess import time import sys def getConnectionState (): "" "Возвращает" CONNECTED "или ' DISCONNECTED '"" "p = subprocess.Popen (" cnetworkmanager --state ", shell = True, stdout = subprocess.PIPE) stdout = p.communicate () result = stdout [0] .split (' \n ') [ 0] return result def isConnected (): return getConnectionState () == 'CONNECTED' def connectEthernet (name = 'myethernet'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s ,,"% name, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) def connectVPN (name = 'myvpn'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s, eth0," % name, shell = True) def timeout (): while True: time.sleep (0.2) if isConnected (): break connectEthernet () timeout () connectVPN (sys.argv [1])
NetworkManager имеет интерфейс D-Bus, который вы можете использовать в других программах или сценариях.
Например, мне удалось подключить одно из VPN-подключений моего сетевого администратора, используя следующую команду:
qdbus --system \
org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager \
org.freedesktop.NetworkManager.ActivateConnection \ #-- this is a method
org.freedesktop.NetworkManagerUserSettings \ #-- arg 1
/org/freedesktop/NetworkManagerSettings/4 \ #-- arg 2
/org/freedesktop/NetworkManager/Devices/1 \ #-- arg 3
/ #-- dumb arg 4 (needed for wifi only)
Вы можете просмотреть инфраструктуру D-Bus с помощью инструмента qdbusviewer из пакета qt4-dev-tools. CLI-only qdbus находится в libqt4-dbus.
API D-Bus NetworkManager зарегистрирован здесь.
Когда вы найдете нужные параметры (номер подключения, номер устройства и т. Д.), , вы можете сохранить строки в качестве сценария оболочки и создать панель запуска на панели для быстрого доступа к ней.
Лично я не беспокоюсь и просто делаю два дополнительных щелчка. В конце концов, я не слишком часто подключаюсь к VPN, чтобы страдать от них.
NetworkManager имеет интерфейс D-Bus, который вы можете использовать в других программах или сценариях.
Например, мне удалось подключить одно из VPN-подключений моего сетевого менеджера, используя эту команду:
qdbus --system \ org.freedesktop.NetworkManager \ / org / freedesktop / NetworkManager \ org.freedesktop.NetworkManager.ActivateConnection \ # - это метод org.freedesktop.NetworkManagerUserSettings \ # - arg 1 / org / freedesktop / NetworkManagerSettings / 4 \ # - arg 2 / org / freedesktop / NetworkManager / Devices / 1 \ # - arg 3 / # - dumb arg 4 (требуется только для Wi-Fi)
Вы можете просмотреть инфраструктуру D-Bus с помощью инструмента qdbusviewer
из пакета qt4-dev-tools
. CLI-only qdbus
из libqt4-dbus
.
API D-Bus NetworkManager зарегистрирован здесь здесь .
]Когда вы найдете необходимые параметры (номер подключения, номер устройства и т. д.), вы можете сохранить строки в качестве сценария оболочки и создать панель запуска на панели для быстрого доступа к ней.
Лично я не беспокойтесь и просто сделайте два дополнительных щелчка. В конце концов, я слишком часто не подключаюсь к VPN, чтобы страдать от них.
Вы должны иметь возможность создавать ярлыки, которые вызывают nmcli для вызова соединений:
nmcli con up id "имя вашего соединения"
Вот результат, когда я запускаю это в терминале в своей системе:
% nmcli con up id «PPTP VPN Testing» Состояние активного подключения: активирование активного пути подключения: / org / freedesktop / NetworkManager / ActiveConnection / 2 Состояние: подключение VPN (3) состояние: подключение к VPN (получение конфигурации IP) (4) подключение активировано
Я использую cnetworkmanager с этим скриптом python для удобства. Сценарий сначала запускает подключение к локальной сети, а затем открывает VPN.
#! / Usr / bin / env python import subprocess import time import sys def getConnectionState (): "" "Возвращает" CONNECTED "или ' DISCONNECTED '"" "p = subprocess.Popen (" cnetworkmanager --state ", shell = True, stdout = subprocess.PIPE) stdout = p.communicate () result = stdout [0] .split (' \n ') [ 0] return result def isConnected (): return getConnectionState () == 'CONNECTED' def connectEthernet (name = 'myethernet'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s ,,"% name, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) def connectVPN (name = 'myvpn'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s, eth0," % name, shell = True) def timeout (): while True: time.sleep (0.2) if isConnected (): break connectEthernet () timeout () connectVPN (sys.argv [1])
NetworkManager имеет интерфейс D-Bus, который вы можете использовать в других программах или сценариях.
Например, мне удалось подключить одно из VPN-подключений моего сетевого менеджера, используя эту команду:
qdbus --system \ org.freedesktop.NetworkManager \ / org / freedesktop / NetworkManager \ org.freedesktop.NetworkManager.ActivateConnection \ # - это метод org.freedesktop.NetworkManagerUserSettings \ # - arg 1 / org / freedesktop / NetworkManagerSettings / 4 \ # - arg 2 / org / freedesktop / NetworkManager / Devices / 1 \ # - arg 3 / # - dumb arg 4 (требуется только для Wi-Fi)
Вы можете просмотреть инфраструктуру D-Bus с помощью инструмента qdbusviewer
из пакета qt4-dev-tools
. CLI-only qdbus
из libqt4-dbus
.
API D-Bus NetworkManager зарегистрирован здесь здесь .
]Когда вы найдете необходимые параметры (номер подключения, номер устройства и т. д.), вы можете сохранить строки в качестве сценария оболочки и создать панель запуска на панели для быстрого доступа к ней.
Лично я не беспокойтесь и просто сделайте два дополнительных щелчка. В конце концов, я слишком часто не подключаюсь к VPN, чтобы страдать от них.
Я использую cnetworkmanager с этим скриптом python для удобства. Сценарий сначала запускает подключение к локальной сети, а затем открывает VPN.
#! / Usr / bin / env python import subprocess import time import sys def getConnectionState (): "" "Возвращает" CONNECTED "или ' DISCONNECTED '"" "p = subprocess.Popen (" cnetworkmanager --state ", shell = True, stdout = subprocess.PIPE) stdout = p.communicate () result = stdout [0] .split (' \n ') [ 0] return result def isConnected (): return getConnectionState () == 'CONNECTED' def connectEthernet (name = 'myethernet'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s ,,"% name, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) def connectVPN (name = 'myvpn'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s, eth0," % name, shell = True) def timeout (): while True: time.sleep (0.2) if isConnected (): break connectEthernet () timeout () connectVPN (sys.argv [1])
Вы должны иметь возможность создавать ярлыки, которые вызывают nmcli для вызова соединений:
nmcli con up id "имя вашего соединения"
Вот результат, когда я запускаю это в терминале в своей системе:
% nmcli con up id «PPTP VPN Testing» Состояние активного подключения: активирование активного пути подключения: / org / freedesktop / NetworkManager / ActiveConnection / 2 Состояние: подключение VPN (3) состояние: подключение к VPN (получение конфигурации IP) (4) подключение активировано
Вы должны иметь возможность создавать ярлыки, которые вызывают nmcli для вызова соединений:
nmcli con up id "имя вашего соединения"
Вот результат, когда я запускаю это в терминале в своей системе:
% nmcli con up id «PPTP VPN Testing» Состояние активного подключения: активирование активного пути подключения: / org / freedesktop / NetworkManager / ActiveConnection / 2 Состояние: подключение VPN (3) состояние: подключение к VPN (получение конфигурации IP) (4) подключение активировано
NetworkManager имеет интерфейс D-Bus, который вы можете использовать в других программах или сценариях.
Например, мне удалось подключить одно из VPN-подключений моего сетевого менеджера, используя эту команду:
qdbus --system \ org.freedesktop.NetworkManager \ / org / freedesktop / NetworkManager \ org.freedesktop.NetworkManager.ActivateConnection \ # - это метод org.freedesktop.NetworkManagerUserSettings \ # - arg 1 / org / freedesktop / NetworkManagerSettings / 4 \ # - arg 2 / org / freedesktop / NetworkManager / Devices / 1 \ # - arg 3 / # - dumb arg 4 (требуется только для Wi-Fi)
Вы можете просмотреть инфраструктуру D-Bus с помощью инструмента qdbusviewer
из пакета qt4-dev-tools
. CLI-only qdbus
из libqt4-dbus
.
API D-Bus NetworkManager зарегистрирован здесь здесь .
]Когда вы найдете необходимые параметры (номер подключения, номер устройства и т. д.), вы можете сохранить строки в качестве сценария оболочки и создать панель запуска на панели для быстрого доступа к ней.
Лично я не беспокойтесь и просто сделайте два дополнительных щелчка. В конце концов, я слишком часто не подключаюсь к VPN, чтобы страдать от них.
Я использую cnetworkmanager с этим скриптом python для удобства. Сценарий сначала запускает подключение к локальной сети, а затем открывает VPN.
#! / Usr / bin / env python import subprocess import time import sys def getConnectionState (): "" "Возвращает" CONNECTED "или ' DISCONNECTED '"" "p = subprocess.Popen (" cnetworkmanager --state ", shell = True, stdout = subprocess.PIPE) stdout = p.communicate () result = stdout [0] .split (' \n ') [ 0] return result def isConnected (): return getConnectionState () == 'CONNECTED' def connectEthernet (name = 'myethernet'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s ,,"% name, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) def connectVPN (name = 'myvpn'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s, eth0," % name, shell = True) def timeout (): while True: time.sleep (0.2) if isConnected (): break connectEthernet () timeout () connectVPN (sys.argv [1])
Вы должны иметь возможность создавать ярлыки, которые вызывают nmcli для вызова соединений:
nmcli con up id "имя вашего соединения"
Вот результат, когда я запускаю это в терминале в своей системе:
% nmcli con up id «PPTP VPN Testing» Состояние активного подключения: активирование активного пути подключения: / org / freedesktop / NetworkManager / ActiveConnection / 2 Состояние: подключение VPN (3) состояние: подключение к VPN (получение конфигурации IP) (4) подключение активировано
NetworkManager имеет интерфейс D-Bus, который вы можете использовать в других программах или сценариях.
Например, мне удалось подключить одно из VPN-подключений моего сетевого менеджера, используя эту команду:
qdbus --system \ org.freedesktop.NetworkManager \ / org / freedesktop / NetworkManager \ org.freedesktop.NetworkManager.ActivateConnection \ # - это метод org.freedesktop.NetworkManagerUserSettings \ # - arg 1 / org / freedesktop / NetworkManagerSettings / 4 \ # - arg 2 / org / freedesktop / NetworkManager / Devices / 1 \ # - arg 3 / # - dumb arg 4 (требуется только для Wi-Fi)
Вы можете просмотреть инфраструктуру D-Bus с помощью инструмента qdbusviewer
из пакета qt4-dev-tools
. CLI-only qdbus
из libqt4-dbus
.
API D-Bus NetworkManager зарегистрирован здесь здесь .
]Когда вы найдете необходимые параметры (номер подключения, номер устройства и т. д.), вы можете сохранить строки в качестве сценария оболочки и создать панель запуска на панели для быстрого доступа к ней.
Лично я не беспокойтесь и просто сделайте два дополнительных щелчка. В конце концов, я слишком часто не подключаюсь к VPN, чтобы страдать от них.
Я использую cnetworkmanager с этим скриптом python для удобства. Сценарий сначала запускает подключение к локальной сети, а затем открывает VPN.
#! / Usr / bin / env python import subprocess import time import sys def getConnectionState (): "" "Возвращает" CONNECTED "или ' DISCONNECTED '"" "p = subprocess.Popen (" cnetworkmanager --state ", shell = True, stdout = subprocess.PIPE) stdout = p.communicate () result = stdout [0] .split (' \n ') [ 0] return result def isConnected (): return getConnectionState () == 'CONNECTED' def connectEthernet (name = 'myethernet'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s ,,"% name, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) def connectVPN (name = 'myvpn'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s, eth0," % name, shell = True) def timeout (): while True: time.sleep (0.2) if isConnected (): break connectEthernet () timeout () connectVPN (sys.argv [1])
NetworkManager имеет интерфейс D-Bus, который вы можете использовать в других программах или сценариях.
Например, мне удалось подключить одно из VPN-подключений моего сетевого менеджера, используя эту команду:
qdbus --system \ org.freedesktop.NetworkManager \ / org / freedesktop / NetworkManager \ org.freedesktop.NetworkManager.ActivateConnection \ # - это метод org.freedesktop.NetworkManagerUserSettings \ # - arg 1 / org / freedesktop / NetworkManagerSettings / 4 \ # - arg 2 / org / freedesktop / NetworkManager / Devices / 1 \ # - arg 3 / # - dumb arg 4 (требуется только для Wi-Fi)
Вы можете просмотреть инфраструктуру D-Bus с помощью инструмента qdbusviewer
из пакета qt4-dev-tools
. CLI-only qdbus
из libqt4-dbus
.
API D-Bus NetworkManager зарегистрирован здесь здесь .
]Когда вы найдете необходимые параметры (номер подключения, номер устройства и т. д.), вы можете сохранить строки в качестве сценария оболочки и создать панель запуска на панели для быстрого доступа к ней.
Лично я не беспокойтесь и просто сделайте два дополнительных щелчка. В конце концов, я слишком часто не подключаюсь к VPN, чтобы страдать от них.
Вы должны иметь возможность создавать ярлыки, которые вызывают nmcli для вызова соединений:
nmcli con up id "имя вашего соединения"
Вот результат, когда я запускаю это в терминале в своей системе:
% nmcli con up id «PPTP VPN Testing» Состояние активного подключения: активирование активного пути подключения: / org / freedesktop / NetworkManager / ActiveConnection / 2 Состояние: подключение VPN (3) состояние: подключение к VPN (получение конфигурации IP) (4) подключение активировано
Я использую cnetworkmanager с этим скриптом python для удобства. Сценарий сначала запускает подключение к локальной сети, а затем открывает VPN.
#! / Usr / bin / env python import subprocess import time import sys def getConnectionState (): "" "Возвращает" CONNECTED "или ' DISCONNECTED '"" "p = subprocess.Popen (" cnetworkmanager --state ", shell = True, stdout = subprocess.PIPE) stdout = p.communicate () result = stdout [0] .split (' \n ') [ 0] return result def isConnected (): return getConnectionState () == 'CONNECTED' def connectEthernet (name = 'myethernet'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s ,,"% name, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) def connectVPN (name = 'myvpn'): p = subprocess.Popen ("cnetworkmanager --activate-connection = user,% s, eth0," % name, shell = True) def timeout (): while True: time.sleep (0.2) if isConnected (): break connectEthernet () timeout () connectVPN (sys.argv [1])