我有一个bash脚本,我想在forked进程中运行一些不相关的命令。这些命令只应在分叉进程中运行,而其他命令只应在父进程中运行。
echo "I am parent statement 1"
( echo "I am child statement 1"; echo "I am child statement 2"; sleep 30) &
echo "I am parent statement 2"
在这个例子中,父shell只输出'parent'语句,而child只回显'child statements'吗?或者孩子在回来后会回复父母陈述2吗?
同样,父母会等孩子(睡觉30)吗?或者父出口和孩子继续跑30秒?
答案 0 :(得分:0)
每个进程只会运行自己的语句。
如果您稍微修改脚本,可以进行一项实验,证明该孩子比父母更长。
#!/bin/bash
echo "I am parent statement 1"
( echo "I am child statement 1"; echo "I am child statement 2"; sleep 30) &
jobs -l
echo "I am parent statement 2"
echo $$
如果您运行脚本然后为父母和孩子执行ps aux | grep <pid>
,您将看到父母在孩子继续生命时已经死亡。