タグ付けされた質問 「proc」

procfs(またはprocファイルシステム)は、UNIXのようなオペレーティングシステムの特殊なファイルシステムであり、プロセスに関する情報やその他のシステム情報を階層的なファイルのような構造で表示します。

2
/ proc / <pid> / exeシンボリックリンクは通常のシンボリックリンクとどう違うのですか?
プロセスを開始してからそのバイナリを削除しても、次の場所から回復できます/proc/&lt;pid&gt;/exe。 $ cp `which sleep` . $ ./sleep 10m &amp; [1] 13728 $ rm sleep $ readlink /proc/13728/exe /tmp/sleep (deleted) $ cp /proc/13728/exe ./sleep-copy $ diff sleep-copy `which sleep` &amp;&amp; echo not different not different $ stat /proc/13728/exe File: ‘/proc/13728/exe’ -&gt; ‘/tmp/sleep (deleted)’ Size: 0 Blocks: 0 IO Block: 1024 …
23 linux  symlink  proc 

3
procがファイルシステムと呼ばれるのはなぜですか?
procファイルシステムは、カーネルはLinuxシステム上で実行中の各プロセスに関する情報を通信することができます。 なぜprocファイルシステムと呼ばれるのですか?のような実際のファイルシステムではありませんext4。これは、実行中のプロセスに関する情報を含むファイルのコレクションです。
20 filesystems  proc 

2
ファイル記述子リンクの移植性
私は今、そうやるので、私はいつも、これを疑問に思いませんが、決して見つけるために時間がかかってきました-使用法がどのようにポータブルここに示したいずれかの/proc/$$/fd/$Nか/dev/fd/$N?私はPOSIXの保証 を理解して/dev/null, /dev/tty, and /dev/console います(この回答に関するコメントを読んだ後、先日それを見つけただけです)が、これらの他のものはどうですか? 私が知る限り、それらはかなり一般的ですが、どのシステムでそれらを見つけることは期待できませんか?何故なの?どちらか一方を見つける可能性が高いですか?彼らはいつも同じような属性を示しますか? 私はこれらのデバイスをあらゆる方法でかなり広範囲に使用する傾向があるので、試してみるだけで不足する可能性があるかどうかを知りたいです。 また、上記の質問は私が知りたいと思うものだけであると理解されるべきですが、私は明らかに最初に尋ねなければならないので、私はこの点で最もよく知らないかもしれず、それらは厳しい要件と見なされるべきではありません答え。可能であれば手掛かりをお願いします。

4
いくつかのシェルの `read`ビルトインが` / proc`のファイルから行全体を読み取れないのはなぜですか?
いくつかのボーンのようなシェルでは、read組み込みは、ファイルから行全体を読み取ることができません/proc(以下のコマンドを実行にする必要がありzsh、交換する$=shellと$shell、他のシェルで): $ for shell in bash dash ksh mksh yash zsh schily-sh heirloom-sh "busybox sh"; do printf '[%s]\n' "$shell" $=shell -c 'IFS= read x &lt;/proc/sys/fs/file-max; echo "$x"' done [bash] 602160 [dash] 6 [ksh] 602160 [mksh] 6 [yash] 6 [zsh] 6 [schily-sh] 602160 [heirloom-sh] 602160 [busybox sh] 6 readstandardでは、標準入力がテキストファイルである必要がありますが、その要件はさまざまな動作を引き起こしますか? テキストファイルの POSIX定義を読み、検証を行います。 …
19 linux  shell  proc  read 

2
Linuxでの/ proc / selfの実装方法
/procLinux のファイルシステムをいじくり回していたところ/proc/self、現在のプロセスのプロセスディレクトリへのシンボリックリンクであるに出会いました。実装方法を知りたい 1つの解決策は、すべてのコンテキストスイッチでそのシンボリックリンクを変更することですが、ディスクアクセスを伴うため、明らかに非常に高価です。
19 process  proc 

2
実行中のプロセスの環境を変更する
envすでに実行中のプロセスの変数を、たとえば/proc/PID/environ?「ファイル」がを介して変更できるようにするにはどうすればよいでしょうかread-only。 長時間実行されるバッチジョブを強制終了せずに、DISPLAY変数を変更または設定解除する必要があります。

5
Linuxで/ dev / rootが表すデバイスを調べますか?
Linuxには、/dev/rootデバイスノードがあります。これは、などの別のデバイスノードと同じブロックデバイスになります/dev/sdaX。/dev/rootこの状況で「実際の」デバイスノードに解決して、ユーザーに適切なデバイス名を表示するにはどうすればよいですか? たとえば、解析中にこの状況が発生する場合があります/proc/mounts。 私はシェル/ Pythonスクリプトで動作するがCでは動作しないソリューションを探しています。
17 linux  proc  devices 

2
特定のPIDが実行されているかどうかを確認するにはどうすればよいですか?
ログファイルを解析してPIDを収集し、そのPIDが実行されているかどうかを確認するPerlスクリプトを作成しています。私はそのチェックを行うための最良の方法を考えようとしています。明らかに、私は次のようなことができます: system("ps $pid &gt; /dev/null") &amp;&amp; print "Not running\n"; ただし、可能な場合はシステムコールを避けたいと思います。そのため、/procファイルシステムを使用できると考えました(移植性は問題ではありません。これは常にLinuxシステムで実行されます)。例えば: if(! -d "/proc/$pid"){ print "Not running\n"; } それは安全ですか?/proc/$pid/ディレクトリがない場合、関連するPIDが実行されていないと常に想定できますか?AFAIK ps自体は/procとにかくその情報を取得するので、私はそう期待していますが、これは本番コード用であるため、確実にしたいです。 それで、実行中のプロセスに/proc/PIDディレクトリがない場合や、/proc/PIDディレクトリが存在し、プロセスが実行されていない場合がありますか?psディレクトリの存在を確認するよりも解析を好む理由はありますか?

1
/ procからプロセスグループIDを取得することは可能ですか?
「/programming/13038143/how-to-get-pids-in-one-process-group-in-linux-os」では、すべての回答が言及されps、言及されていないことがわかります/proc。 「ps」はあまりポータブルではないようです(AndroidとBusyboxのバージョンでは異なる引数が必要です)。シンプルでポータブルなツールでpgidを使用してpidをリストできるようにしたいと思います。 /proc/.../statusに表示されます Tgid:(スレッドグループID)、Gid:(セキュリティのグループID、プロセスをグループ化するためではなく)が表示されPGid:ますが、... pspidからpgidを取得する他の(使用していない)方法は何ですか?


5
別のプロセスのスタックを読みますか?
子プロセスのスタックを読み取ろうとしていますが、運がありません。を使用してそれが可能であることはわかっていますptraceが、ptraceのインターフェイスでは一度に1単語しか読み取ることができず、スタックの大部分をスキャンしようとしています。 また、最初にptraceを使用して添付した後/proc/$pid/memに/proc/$pid/mapsファイルから抽出されたスタックの境界から読み取りを試みました(ここで提案されています)が、読み取りが失敗し続けますプロセスのさまざまな部分(ヒープなど)から読み取ります。 何が間違っていますか?他のオプションはありますか?
16 linux  kernel  memory  proc 

1
iprouteパッケージの「ss」コマンド。timewaitソケットのスラブテーブルをクエリする理由
これがこの質問の最良のフォーラムではない場合はご容赦ください。しかし、プログラミング自体よりもカーネルに関連しているようです。 統計をグラフ化して監視できるように、開いているポートをシステムに照会するスクリプトを書いています。このために、iprouteパッケージの「ss」コマンドを使用しています。実行ss -s|grep estabすると、次のような出力が表示されます。 TCP: 296 (estab 6, closed 238, orphaned 0, synrecv 0, timewait 238/0), ports 0 私の質問は、TIMEWAIT状態の計算されたソケットを示すtimewait変数に関係しています。スラッシュの後に何の数字が参照されているのかを理解しようとすると、ソースコードを検索するという急な冒険になり、最終的に次のスニペットを見つけることになりました。 printf("TCP: %d (estab %d, closed %d, orphaned %d, synrecv %d, timewait %d/%d), ports %d\n", s.tcp_total + slabstat.tcp_syns + s.tcp_tws, sn.tcp_estab, s.tcp_total - (s.tcp4_hashed+s.tcp6_hashed-s.tcp_tws), s.tcp_orphans, slabstat.tcp_syns, s.tcp_tws, slabstat.tcp_tws, slabstat.tcp_ports ); 「slabstat」が意味するものを検索した結果、最終的にスラブキャッシュと/ proc …

4
/ procおよび/ sysでできることを知るにはどうすればよいですか[非公開]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 UnixおよびLinux Stack Exchangeで話題になるようにします。 2年前に閉店。 /procと/sys仮想ファイルシステムの高度な使用法についてもっと知りたいのですが、どこから始めればいいのかわかりません。誰もが学ぶための良いソースを提案できますか?また、sysには定期的に追加されると思うので、新しいカーネルがリリースされたときに最新の知識を維持するための最良の方法は何でしょうか。
15 linux  kernel  proc  sysfs 

2
特定のプロセスが32ビットか64ビットかを判断する
2.6.x以降のLinuxカーネルと、ELF32バイナリとELF64バイナリの両方を実行できる既存のユーザーランド(つまり、LinuxでCPUが64ビットオペレーティングシステムをサポートしていることをどのように確認できますか?) PIDによる)32ビットモードまたは64ビットモードで実行されていますか? 素朴な解決策は、実行することです: file -L /proc/pid/exe | grep -o 'ELF ..-bit [LM]SB' しかし、その情報は/proc依存せずに直接公開されていlibmagicますか?
14 linux  64bit  proc  elf 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.