我想创建一个bash脚本启动并行的子进程。 有没有办法做到这一点,使孩子的脚本仍然收到发送到父进程的信号?
以下是大致我多么想启动子进程,但是这不符合我的信令标准。
for (( i=0; i<9; i++ ))
{
{ echo $i start ; sleep 5s ; echo $i complete ; } &
}
wait
因为这在C-程序自动工作(使用fork/exec
),相信它应该有可能在不使用的trap
的基于信号转发-其中信号被转发之前本身可能被中断。
其中一个解决方法是使用GNU-parallel
。 我不知道它的机制,但它解决了这个问题-只要你愿意调整你的环插入xargs
风格语法。 GNU-parallel
,如果不解决这个问题--semaphore
选项使用。
我认为,答案就在这里,但我不知道怎么翻译它来砸: 信号发送给两个小孩和父母的过程 。