我有一个简短的Python代码(main.py):
#!/usr/bin/bash
import os
import subprocess
print(os.getpid())
os.execvp("ls", ["ls", "-a"])
print("hello")
当我运行它时,我可以看到os.getpid()
和os.execvp
命令的终端输出,但看不到print("hello")
。
然而,当我有另一个文件(another.py)的内容:
#!/usr/bin/bash
print("hello")
然后将www.example.com更改main.py为:
#!/usr/bin/bash
import os
import subprocess
print(os.getpid())
os.execvp("python3", ["python3", "another.py"])
然后我可以看到os.getpid()
和print("hello")
的输出
execvp背后的理念是什么?
1条答案
按热度按时间ruoxqz4g1#
一个非常简单的脚本,用于说明
fork
exec
和wait