Linux は通常 procfs を /proc にマウントします。この仮想ファイルシステムはカーネルが生成したインターフェースをファイルとディレクトリとして示し、内容はディスク上の通常の永続ファイルではありません。プロセス状態と、一部のシステム全体のカーネル情報を公開します。
プロセス · レッスン 10
/proc ファイルシステム
Linux が仮想 `/proc` ファイルシステムを通じ、実行中のプロセスとカーネル情報を公開する仕組みを学びます。
プロセスディレクトリを見つける
$ findmnt /proc
$ ls /proc
数値のディレクトリ名は、呼び出し元の PID 名前空間から見えるプロセス ID に対応します。たとえば /proc/12345 は、存在する瞬間の PID 12345 を表します。/proc/self は観測プロセス自身のディレクトリ、/proc/thread-self は現在のスレッドへ解決されるシンボリックリンクです。
可視性とアクセスは認証情報、名前空間、セキュリティ方針、hidepid などの procfs マウントオプション次第です。ディレクトリ一覧とファイルを開く間にプロセスが終了する場合があり、消失は検査ツールが扱うべき正常な競合です。
数値ディレクトリ /proc/12345 は通常何を表しますか?
プロセス情報を読む
権限があれば状態ファイルを調べます。
$ less /proc/12345/status
プロセス名、状態、ID、認証情報、メモリカウンター、capability、シグナルマスクなどを含みます。ほかの有用な項目は次のとおりです。
/proc/12345/cmdline:null バイトで区切られたコマンドライン引数/proc/12345/environ:アクセス制御され、機密情報を含み得る環境変数/proc/12345/fd/:開いたファイル記述子を表すシンボリックリンク/proc/12345/maps:現在のメモリマッピング/proc/12345/cwd:現在の作業ディレクトリへのシンボリックリンク
これらは変化する観測結果です。カーネルバージョンでフィールドが異なり、複数ファイルを読む間に状態が変わり、名前だけでは分からない注意点を持つカウンターもあります。
PID 12345 のフィールド形式の概要を含むパスはどれですか?
システム全体のインターフェース
すべてがプロセス用ではありません。
/proc/cpuinfo:カーネルが報告する CPU 情報/proc/meminfo:システムメモリカウンター/proc/mounts:現在のプロセスから見えるマウント/proc/loadavg:ロード平均と実行可能タスク情報/proc/sys/:実行時のカーネルパラメーター
特に /proc/sys の一部は書き込み可能な設定インターフェースです。通常ファイルに見えるという理由だけで書き込まず、許可された変更前にパラメーター、範囲、永続化方式、ロールバックを理解してください。
1プロセスの状態ではなく、システム全体のメモリカウンターを提供する項目はどれですか?
ツールを通じて `/proc` を使う
Linux の ps、top、free などは procfs などのカーネルインターフェースから多くのデータを得て、ラベル付け、計算、整形します。必要なフィールドを提供するなら日常作業ではツールを優先し、特定の詳細やスクリプトで直接読む場合はインターフェース文書を先に確認します。
直接読む処理は、形式を正しく解析し、プロセス消失を許容し、機密出力を保護し、1回の読み取りを原子的なシステムスナップショットと思わない設計が必要です。
2つの検査コマンドの間に /proc/PID が消えることがあるのはなぜですか?
レッスン完了
/proc ファイルシステム を完了しました
procfs を実行中でアクセス制御されたカーネルインターフェースとして使えるようになりました。
数値の
/procディレクトリを見える PID へ対応付ける。競合と機密性を考慮し、選択したプロセス単位ファイルを読む。
プロセスディレクトリとシステム全体のインターフェースを区別する。
信頼できる日常検査には文書化されたツールと形式を優先する。