Написал вот такой скрипт, он работает но требуются права sudo для запуска openvpn, вопрос таков, есть ли какой-либо способ запуска openvpn без ввода пароля sudo, но с правами sudo. Скрипт этот нужен для работы другой программы, которая также написана на python.
import requests, os, sys, subprocess, time, random, signal
def onVpn():
path = getFile('/home/kirill1/workspace/vpn/conf.ovpn')
with open(path, "a") as myfile:
myfile.write("\nscript-security 2\nup /etc/openvpn/update-resolv-conf\ndown /etc/openvpn/update-resolv-conf")
myfile.close()
process = subprocess.Popen(['sudo','openvpn', '--auth-nocache', '--config', path])
print(process.pid)
time.sleep(90)
with open("/home/kirill1/workspace/vpn/log.log", "r") as log:
if log.read().find('Initialization Sequence Completed') != -1:
return [process, True]
else:
return [process, False]
def offVpn(process):
print(process)
print(process.pid)
process.kill()
pid = process.pid + 1
print(pid)
while process.poll() != 0:
time.sleep(1)
return
pr = onVpn()
print(pr)
time.sleep(10)
offVpn(pr[0])
print('finish')