gpt4 book ai didi

linux - Bash 将 pid 内核增加到无限大循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:39 26 4
gpt4 key购买 nike

我一直在尝试在一个巨大的循环中制作 cURL,我使用 bash 将 cURL 运行到后台进程中,大约有 904 个域将被 curl

问题是904个域不能全部嵌入,因为Linux内核的PID限制。我已经尝试将 pid_max 添加到 4194303(我在这个讨论中读到 Maximum PID in Linux)但是在我检查只有域 901 在后台进程中运行之后,在我添加 pid_max 之前只有大约 704 在后台进程中运行。

这是我的循环代码:

count=0
while IFS= read -r line || [[ -n "$line" ]];
do
(curl -s -L -w "\\n\\nNo:$count\\nHEADER CODE:%{http_code}\\nWebsite : $line\\nExecuted at :$(date)\\n==================================================\\n\\n" -H "X-Gitlab-Event: Push Hook" -H 'X-Gitlab-Token: '$SECRET_KEY --insecure $line >> output.log) &

(( count++ ))
done < $FILE_NAME

有人有其他解决方案或修复它来处理巨大的循环以将 cURL 运行到后台进程吗?

最佳答案

可以创建脚本example.sh

#!/bin/bash

line=$1
curl -s -L -w "\\n\\nNo:$count\\nHEADER CODE:%{http_code}\\nWebsite : $line\\nExecuted at :$(date)\\n==================================================\\n\\n" -H "X-Gitlab-Event: Push Hook" -H 'X-Gitlab-Token: '$SECRET_KEY --insecure $line >> output.log

那么命令可以是(将一次运行的进程数限制为 50)

xargs -n1 -P50 --process-slot-var=count ./example.sh < "$FILE_NAME"

关于linux - Bash 将 pid 内核增加到无限大循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56984419/

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