假设我的打开文件限制是每个进程 1024,
那么如何在 shell 脚本中重现 Too Many open file
错误?
#!/bin/bash
a=0
while [ "$a" -lt 10 ]
do
echo "Welcome $i times"
a=`expr $a + 1`
tail -f /dev/null > myfile$a &
done
我在上面尝试过,但它在 10 个不同的进程中打开 10 个文件。
最佳答案
您可以使用ulimit -n
将打开文件的最大数量设置为较低的数字,然后使用exec
打开超过该数量的文件(记住文件描述符 0、1 和 2 在启动时已打开):
#!/usr/bin/env bash
ulimit -n 5
exec 3</dev/null
exec 4</dev/null
exec 5</dev/null
exec 6</dev/null
运行此命令会产生:
foo.sh: line 6: /dev/null: Too many open files
foo.sh: line 7: /dev/null: Too many open files
关于linux - 如何在 Shell 中重现 "Too Many open files"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62619512/