python - 用于检查 openvpn 服务器的 Python 脚本是活动还是已死
问题描述
我正在查看 python 程序,它将检查远程 openvpn 服务器列表是否真的有效!!我尝试了以下代码,但没有运气。连接 vpn 服务器后,除非按下,否则控件不会传回执行下一行ctrl+c
。如何检查如下:
- 如果 openvpn 正在连接服务器,则打印活动消息
- 否则打印非活动消息。
- 整个事情都在一个循环中,我想在虚拟环境中运行。
代码如下
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')
解决方案
推荐阅读
- c# - 可能的 VS 问题 Type Local not found in current namespace
- python - Sympy:计算(9,9)矩阵的特征值需要很长时间
- sql - 如何使用 BigQuery 旧版 sql 查询相同的重复字符串字段以获取多个值?
- android - 使用 NDK 20 为 Android 编译 Opus
- amazon-web-services - 从 Glue 目录和 Glue Py Spark 脚本中的动态路径同步 CSV 文件
- sql - 一行正在破坏我的查询效率?
- wix - 如何将图像背景添加到自定义 MSI 对话框?
- android - 使用具有高程和角半径的流的 Android 约束布局
- python - 如何在 Pandas 中添加行切片?
- javascript - 通过将 prop 变量分配给组件变量,它们被链接