gpt4 book ai didi

linux - 限制由 incrond 生成的并发进程数

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

我正在开发一个最终将驻留在 CentOS(最新)虚拟机上的进程,我正在 Ubuntu 12.04 LTS 中开发...

因此,我将 incron 设置为使用 IN_CLOSE_WRITE 监控我的放置文件夹,以便在将文件写入其中时,然后在文件(图像、imagemagick)上运行资源密集型脚本。这一切都很好;除非一次删除太多文件。正如我所说,该脚本相当耗费资源,如果同时运行超过 4 个左右的实例,我的开发机器就会崩溃(最终的虚拟机会更强大,但我预见到可能会丢失数百个文件的情况马上!)

危险的 incrontab:

/path/to/dropfolder IN_CLOSE_WRITE bash /path/to/resourceintensivescript.sh $@/$#

所以问题是:如何限制 incrond 生成的作业数量?我尝试使用 gnu parallel 但无法弄清楚如何让它工作......

例如:

/path/to/dropfolder IN_CLOSE_WRITE parallel --gnu -j 4 bash /path/to/resourceintensivescript.sh $@/$#

似乎什么都不做:/

和:

/path/to/dropfolder IN_CLOSE_WRITE;IN_NO_LOOP bash /path/to/resourceintensivescript.sh $@/$#

最终丢失文件 :P

关于如何处理这个问题的想法?

最佳答案

执行此操作的一个非常基本的方法是简单地使用 grep 并计算进程......类似于:

    processName=myprocess

if [ $(ps -ef |grep -v grep|grep ${processName} |wc -l) -le 4 ]
then
do something
fi

使用循环建议:

processName=myprocess

while true
do
if [ $(ps -ef |grep -v grep|grep ${processName} |wc -l) -le 4 ]
then
do something
break
fi
sleep 5
done

关于linux - 限制由 incrond 生成的并发进程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18114010/

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