python - subprocess + service network-manager 是禁用网络的好方法吗?
问题描述
我想创建一个上下文类来禁用和重新启用我的 Linux 机器上的网络活动:
class NoNetWorkContext:
"""Context class for disabling and re-enabling network."""
def __enter__(self, *a, **kw):
subprocess.run('sudo service network-manager stop', shell=True)
def __exit__(self, *a, **kw):
subprocess.run('sudo service network-manager restart', shell=True)
然后将其用于:
with NoNetWorkContext():
# ...
我的问题是这些:
- 需要 sudo(可以通过将我添加到 sudoers 列表来解决,但我不愿意这样做)
- 使用
subprocess
(原生更好)
有更好的解决方案吗?
解决方案
推荐阅读
- python - 熊猫从字符串加载数据帧
- matlab - 在 Matlab 中将表格列转换为矩阵
- reactjs - 笑话:如何测试调用 bind(this) 的函数
- javascript - React-native 上传图片作为 FormData
- highcharts - 如何在 Highchart 中移动线系列?
- java - ClassCastException:java.lang.String 无法转换为 Object
- scala - 在 Scala 中以 for-comprehension 交换语句显示出奇怪的行为
- javascript - 当firebase函数在另一个文件中时,如何保持它处于打开状态
- ruby-on-rails - Twilio 通知正文/标题文本仅显示应用程序的名称
- python - 数据可视化——哪种图表适合时间和多个数据列?