shスクリプトの警告を修正するためにshellcheckを使用しています。スクリプトは、次のコマンドを使用してハードファイル記述子の制限を確認します。
ulimit -H -n
以下でソフトfd制限を設定します。
ulimit -n "$MAX_FD"
これにより Shellcheck アラートが生成されます。
In POSIX sh, ulimit -H is not supported. [SC2039]
In POSIX sh, ulimit -n is not supported. [SC2039]
POSIX shでハードリソース制限を取得し、ソフトリソース制限を設定する移植可能な方法は何ですか?
答え1
まあ厳密に言えば、POSIXulimit
-f
オプション(最大ファイルサイズ)だけがわかるようで、答えは「なし」ではないかと思います。
Linux上のほぼすべてのシェル(Bash、Busybox、Dash、Ksh、mksh、yash、zsh)には、およびをサポートする組み込みulimit
コマンドがあります。-H
-S
-n
Linux以外のシステムについてはよくわかりませんが、FreeBSD マニュアルページsh(1)
また、OpenBSDでは次のように言及しました。/bin/sh
kshだと思います。、これもサポートします。