既存のコマンドまたはAPIを介してLinuxユーザースペースのuser_structから情報を取得する方法はありますか?
つまり、ULIMITSによって制御されているユーザーが現在開いているファイルとジョブの数を取得できます。
答え1
カーネルのソースコードを見ました(具体的にはLinux/user.c/proc
システムコール定義またはエントリ管理が見つかりませんでした...
したがって、これを行うAPIがないようです。 :-(
したがって、2つの解決策があります。
これらの統計をダンプする各ユーザーに対して `/proc/̀エントリを実装するカーネルモジュールを開発できます。
/proc/<pid/
アイテム(プロセス所有者が所有するディレクトリ)を解析し、ターゲットユーザーが所有する各プロセスごとにファイルなどをfd
解析できます。stat
答え2
シンプル
man ulimit
ユーザー制限の一般的な説明と(マンページの下部に)「参照」セクションを提供します。そこには次のものがあります。
制限を受ける(2)
これは、「getrlimit()」(マンページセクション2)というシステムコールがあることを意味します。だからあなたがするとき
man 2 getrlimit
ユーザー制限構造を検索するために必要なすべての情報を取得できます。