Linux,编写一个程序,创建一个或两个子进程,然后分别在父、子进程中显示它们的进程号以及对应的父进程号,并输出其进程中相应的变量。
时间: 2024-09-30 19:11:28 浏览: 33
Linux 是一种开源操作系统,基于 Unix 内核,被广泛用于服务器和超级计算机等领域。在 Linux 中,你可以使用 Python 的 `os` 和 `multiprocessing` 模块来创建和管理子进程。
以下是一个简单的 Python 程序示例,展示了如何在父进程中创建一个子进程,同时在父、子进程中显示各自的进程ID(PID)以及父进程的PID:
```python
import os
import time
# 定义一个全局变量,将在父、子进程中共享
global_variable = "Hello from Parent Process"
def child_process(child_pid):
print(f"Child process {child_pid} started")
print(f"Parent PID: {os.getppid()}") # 获取父进程PID
print(f"Global Variable: {global_variable}")
time.sleep(2) # 等待一段时间
print("Child process exiting")
if __name__ == "__main__":
parent_pid = os.getpid() # 获取当前进程PID
# 创建子进程
child_pid = os.fork()
if child_pid == 0: # 如果这是子进程
child_process(child_pid)
else: # 如果这是父进程
print(f"Parent process {parent_pid} started")
print(f"Child process {child_pid} created")
print(f"Global Variable: {global_variable}")
# 父进程等待子进程结束
child_pid, exit_code = os.wait()
print(f"Child process {child_pid} ended with code {exit_code}")
```
在这个例子中,我们首先使用 `os.fork()` 创建一个新的子进程,然后根据返回值判断当前是否是子进程。如果是子进程,则执行 `child_process()` 函数并打印相关信息;如果是父进程,则等待子进程结束后再进行下一步操作。
运行这个程序时,你会看到父进程和子进程都各自打印它们的PID、父进程的PID以及共享的全局变量。
阅读全文