これはとても奇妙です。私の設定でこれを試していますulimit
。60000
startup.sh
#!/bin/bash
ulimit -n 60000
echo "Hello! File Descriptor set"
(755ファイル権限)でこれを行うことができ、./startup.sh
エコーラインはエラーなく印刷されます。ただし、これを行ってもulimit -n
表示されます1024
。何が起こっているのでしょうか?
驚くべきことにulimit -n 60000
、端末に入力して実行するとulimit -n
完璧に動作します。スクリプトでファイル記述子の制限を設定できないのはなぜですか?
Debian 8、64ビット。 OpenVZコンテナ
ベストアンサー1
これは、制限がシェルスクリプト、つまりbash
スクリプトを実行して生成されたシェル(この場合)内に設定されているためです(カーネルは実際にスクリプトをシェルに引数として渡します)。
したがって、スクリプトの実行が完了するとそれ殻も消えました(そして制限的です)。その後、元のシェルに戻ります。
テストするには、ulimit -n
内部でスクリプトを実行してください。