この回答を使用してくださいhttps://unix.stackexchange.com/a/283521/114939
これにより、ログインせずに特定のptyを開いたままにするプロセスを見つけることができます(コマンドwho
では表示できません)、反対の質問をします。
AIXシステムで特定のプロセスのパブリックPTYを取得する方法は? (バックグラウンドで開始され、ターミナル/ptyログインに「接続」されていない場合)。
答え1
/proc
AIXには、pidを使用してオープンしたファイル記述子を一覧表示できるファイルシステム(約5.1以降)があります。プロセス文書化:
$ procfiles -n 15502
15502 : /home/guest/test
Current rlimit: 2000 file descriptors
0: S_IFCHR mode:0622 dev:10,4 ino:2584 uid:100 gid:100 rdev:28,1
O_RDONLY
1: S_IFCHR mode:0622 dev:10,4 ino:2584 uid:100 gid:100 rdev:28,1
O_RDONLY
2: S_IFCHR mode:0622 dev:10,4 ino:2584 uid:100 gid:100 rdev:28,1
O_RDONLY
3: S_IFREG mode:0644 dev:10,7 ino:26 uid:100 gid:100 rdev:0,0
O_RDONLY size:0 name:/tmp/foo
ptyなどのオープンデバイスの場合は、inodeと州/マイナー番号のみが提供されますが、単純ですls -l /dev/pts/
。
インストールすることもできます。Linuxアプリケーション用のAIXツールボックスlsof
次にコマンドを使用します。
答え2
XXX が次の場合pid
file /proc/XXX/fd/* | grep /dev/pt
ただし、stdin、stdout、stderr などの複数の役割に対してプロセスが開かれている場合は、pty ごとに複数行が表示されます。
しかし、最後に使用した後にAIXがあまり変わらない限り、これはAIXとLinuxには役に立ちません。