python2,已知两个进程的pid为1234和5678,如何将1234的进程作为子进程挂到5678进程上?不要用pip install方法
时间: 2024-03-08 10:50:57 浏览: 63
python 根据pid杀死相应进程的方法
在Python 2中,可以使用os模块下的fork()和setsid()方法来实现将一个进程作为子进程挂到另一个进程上。具体实现步骤如下:
1. 首先获取1234进程的进程号和5678进程的进程号:
```python
import os
parent_pid = 5678
child_pid = 1234
```
2. 然后在5678进程中使用os.fork()方法创建一个子进程:
```python
pid = os.fork()
```
3. 判断进程是否成功创建,如果是子进程则调用os.setsid()方法将其设置为新的会话组长:
```python
if pid == 0:
os.setsid()
```
4. 如果是子进程,则调用os.execve()方法执行1234进程:
```python
if pid == 0:
os.execve('/bin/kill', ['/bin/kill', '-STOP', str(child_pid)], os.environ)
```
5. 如果是父进程,则等待子进程的退出:
```python
if pid > 0:
os.waitpid(pid, 0)
```
完整代码如下:
```python
import os
parent_pid = 5678
child_pid = 1234
pid = os.fork()
if pid == 0:
os.setsid()
os.execve('/bin/kill', ['/bin/kill', '-STOP', str(child_pid)], os.environ)
if pid > 0:
os.waitpid(pid, 0)
```
阅读全文