3

パイプの向こう側のpidが知りたいです。ls -l /proc/SELF_PID/fd/0Linux の場合、これらのコマンドの ID を一致させることができます。

[root@host ~]# コマンド 1 | コマンド2 &

私は command2 の PID = 5912 を知っています。

[root@host ~]# ls -l /proc/5912/fd/0
lr-x------ 1 ルート ルート 64 3 月 25 日 18:00 /proc/5912/fd/0 -> パイプ:[540748072]
[ルート@ホスト ~]# ls -l /proc/[0-9]*/fd/1 | grep 'パイプ:\[540748072\]'
l-wx------ 1 ルート root 64 Mar 25 18:01 /proc/5911/fd/1 -> pipe:[540748072]
[root@host ~]# cat /proc/5911/cmdline
vmstat12

Linuxでより良い方法はありますか? または BSD およびその他の OS にアクセスするにはどうすればよいですか?

そして、良いCPANモジュールがあるかどうか知りたい...

ありがとう。

4

1 に答える 1

0

Perl では、プロセスは特殊変数 $$ を使用して独自の PID を取得できます。

パイプのペアまたはソケットがある場合、各プロセスは独自の PID をパイプまたはソケットに送信して、他のプロセスが読み取ることができます。

また、親は通常、子供を作成するシステム コールを通じて子供の PID を認識します。

于 2011-03-31T06:44:45.910 に答える