从python输入内核名称空间

nsenter的Python项目详细描述


Travis CI build status

这个python包允许通过执行“setns”系统调用输入linux内核名称空间(mount、ipc、net、pid、user和uts)。 命令行接口试图类似于nsenterc程序。

需要Python2.6或更高版本

请参阅介绍性的blog post “Entering Kernel Namespaces from Python”

从pypi安装:

sudo pip3 install nsenter

从git源安装:

python3 setup.py install

命令行用法示例:

docker run -d --name=redis -t redis
sudo nsenter --all --target=`docker inspect --format '{{ .State.Pid }}' redis` /bin/bash

来自python的示例用法:

importsubprocessfromnsenterimportNamespacewithNamespace(mypid,'net'):# output network interfaces as seen from within the mypid's net NS:subprocess.check_output(['ip','a'])# or enter an arbitrary namespace:withNamespace('/var/run/netns/foo','net'):# output network interfaces as seen from within the net NS "foo":subprocess.check_output(['ip','a'])

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用数据库中的值填充p:selectOneMenu   Java/Junit中的异步单元测试一个非常简单但不成功的例子   在Debian上使用Java连接到MySQL   java测试时如何恢复表中的一条记录/行?   java如何将重点放在jbutton上而不是放在另一个jbutton上?   java我可以从HPROF文件中获取JVM标志吗?   java如何使用自定义比较器在2个集合上保留   java让stringTokenizer将一行文本拆分为预定义变量的最佳方法是什么   Kotlin Android/Java字符串日期时间格式,API21   exchange server EWS Java Api自动发现不工作   netbeans是Java新手,似乎无法修复错误;应为类、接口或枚举。274062   我正在尝试将一些scala代码转换为Java8,以创建新的Lambda和并行集合   流中的分配api(java)   用于串行通信的java Python字节数组