如何将PID为117135的进程作为子进程挂载到PID为868518的进程上,python 2
时间: 2024-03-12 17:45:29 浏览: 47
在Python中用于进程和系统监控的跨平台库_Python_C_下载.zip
在Python 2中,你可以使用`os.fork()`创建子进程,并使用`os.setns()`将子进程的命名空间切换到父进程的命名空间中,然后使用`subprocess.Popen()`在子进程中执行挂载命令。以下是示例代码:
```python
import os
import subprocess
# 获取子进程的命名空间文件描述符
fd = open("/proc/117135/ns/mnt")
ns_pid = fd.fileno()
# 创建子进程
pid = os.fork()
if pid == 0:
# 子进程中切换命名空间
os.setns(ns_pid, 0)
# 在子进程中执行挂载命令
cmd = ["sudo", "mount", "--bind", "/proc/{}/ns/mnt".format(117135), "/proc/868518/ns/mnt"]
subprocess.Popen(cmd)
# 子进程退出
os._exit(0)
else:
# 等待子进程退出
os.waitpid(pid, 0)
```
在这个例子中,子进程会将自己的命名空间切换到父进程的命名空间中,并使用`subprocess.Popen()`在子进程中执行挂载命令。注意,这里使用了`os._exit()`来退出子进程,而不是`sys.exit()`,因为`sys.exit()`会退出整个进程,包括父进程。
阅读全文