首页 > 解决方案 > 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():
    # ...

我的问题是这些:

  1. 需要 sudo(可以通过将我添加到 sudoers 列表来解决,但我不愿意这样做)
  2. 使用subprocess(原生更好)

有更好的解决方案吗?

标签: pythonpython-3.x

解决方案


推荐阅读