Gearmanユーザーとして実行中のプロセスがあり、この厄介なエラーを回避するためにopen files
を変更したいと思います。
エラー2014-09-12 17:49:14.000000 [メイン]受け入れます(オープンファイルが多すぎます) - > libgearman-server/gearmand.cc:788
Ubuntuで他のユーザーとしてulimitを実行し、開いているファイルを変更するにはどうすればいいですか?私は現在gearmanとしてログインしていませんが、私はrootアクセスを持っています。私はこれをやってみました:
su gearman --Shell /bin/bash --command "ulimit -n"
推奨されているとおり 、ここ ですが、何も出力されません。
$ su gearman --Shell /bin/bash --command "ulimit -n"
Password:
$
グーグル検索の間に私がそれに出会ったので、これを再検討して、 Tony のコメントが有用であることを発見しました:限界がプロセスに置かれるのは本当ですがレベル、特定のユーザーに対して設定されている制限を決定する方法は、そのユーザーが開始したプロセスを見つけてproc/${id}/limits
を確認することです。
具体的には:
$ ps -u username # look up processes owned by user
$ Sudo grep 'open files' /proc/${id}/limits # find "Max open files" line for process ID
ulimit
コマンドを実行すると、ulimit
を実行しているプロセス(シェル)とすべてのサブプロセスにのみ影響します。そのため、bash --command "ulimit -n"
を実行しても、bashのそのインスタンスで開いているファイルの数にのみ影響があり、その後bashが終了するため、将来のプロセスには影響がありません。
実際のプロセスのオープンファイル制限を増やすために必要なことを達成するためには、limits.conf
を編集して、特定のギアマンユーザーのオープンファイル制限を増やすことがおそらくより理にかなっています。
別の場所にあるlimits.confの例、または here を参照してください。
su - <USERNAME> -c ulimit' -Hn'
を使ってみてください。 CEntOS 7でテストしたところ、うまくいきました。