gpt4 book ai didi

linux - 是否可以在 shell 脚本中创建非子进程?

转载 作者:太空狗 更新时间:2023-10-29 11:09:45 26 4
gpt4 key购买 nike

我正在使用 shell process pool API在 Github 上,一个脚本,如下所示

    function foobar()
{
mytask($1);
}

job_pool_init 100 0
tcpdump -i eth0 -w tempcap & #
for i in `seq 1 4`;do
mesg="hello"$i
job_pool_run foobar $mesg
sleep 5
done

job_pool_wait
pkill tcpdump #
echo 'all finish'
job_pool_shutdown

如果我注释掉tcpdump这一行,然后它工作正常,如预期的那样,但是当 tcpdump 行在那里时,job_pool_wait中有一个wait命令,它等待所有子进程结束,如果没有这样的tcpdump行,则符合预期。但是我想在所有子进程完成之前捕获一些东西,所以我必须使用 tcpdump。在这个脚本中,tcpdump 进程是一个子进程,job_pool_wait 也会等待 tcpdump 进程结束,这不是预期的。

所以一个解决方案就是让tcpdump不是子进程,我该怎么做,或任何其他解决方案?谢谢!

最佳答案

您应该能够在后台的子 shell 中运行 tcpdump:

(tcpdump -i eth0 -w tempcap &)

这应该可以防止它显示为您脚本的直接后代。

关于linux - 是否可以在 shell 脚本中创建非子进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16402157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com