Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 如何在使用GNU Parallel的Bash脚本中避免SIGCHLD错误大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在循环中运行script.sh.该脚本包含并行wget命令.我收到以下错误: Signal SIGCHLD received, but no signal handler set. 循环看起来像这样: for i in {1..5}; do /script.sh; done 导致错误的行看起来像这样(省略选项和设置): cat file.txt | parallel -j15 wget 研究:@H_450_5@
我正在循环中运行script.sh.该脚本包含并行wget命令.我收到以下错误

Signal SIGCHLD received,but no signal handler set.

循环看起来像这样

for i in {1..5}; do /script.sh; done

导致错误的行看起来像这样(省略选项和设置):

cat file.txt | parallel -j15 wget

研究:

我不是GNU Parallel的专家,但是除非我得到上面的错误,否则大多数时候脚本似乎都能正常工作.在查看SIGCHLD时,我了解到并行运行可以创建“僵尸进程”,有时我们需要“收获”这些进程.此外,我发现你可以杀死进程,因为有时他们可以占用所有可用的连接.

试图理解:

但是,我不知道造成这个问题的原因是什么.这是我的相似之处吗?我不是“收获”流程吗?我应该明确地杀死进程吗?是因为我在循环中运行并行脚本吗?

我的问题:

如何解决SIGCHLD错误

如果您对此有任何经验,我们非常感谢您的见解.

解决方法

我认为这可能是一个并行的错误.代码中有一点是作者正在删除sigchld处理程序,可能是忽略信号的一种方式. perl文档没有提到可能产生的影响,这表明结果将依赖于平台或实现并且不可靠.忽略信号的正确方法是将处理程序设置为“INGORE”.我建议尝试版本20150222,这是一个旧版本,确实有这个有问题的代码.

大佬总结

以上是大佬教程为你收集整理的linux – 如何在使用GNU Parallel的Bash脚本中避免SIGCHLD错误全部内容,希望文章能够帮你解决linux – 如何在使用GNU Parallel的Bash脚本中避免SIGCHLD错误所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。