%20in%20AIX.png)
Mit dieser Antworthttps://unix.stackexchange.com/a/283521/114939
die es uns ermöglichen, Prozesse zu finden, die einen bestimmten PTY ohne Anmeldung geöffnet halten ( who
der Befehl kann sie nicht anzeigen), veranlassten mich, die umgekehrte Frage zu stellen.
Wie erhalte ich die geöffneten PTYs für einen bestimmten Prozess in AIX-Systemen? (Für diejenigen, die im Hintergrund gestartet werden und nicht an eine Terminal-/PTY-Anmeldung „angehängt“ sind).
Antwort1
AIX hat ein /proc
Dateisystem (seit etwa 5.1?) und Sie können die offenen Dateideskriptoren für eine PID auflisten mitProfildateien:
$ 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
Für offene Geräte wie ein PTY werden nur die Inode- und Haupt-/Nebennummern angegeben, Sie sollten diese jedoch problemlos mit denen abgleichen können, die durch ein einfaches angezeigt werden ls -l /dev/pts/
.
Sie können auch dieAIX Toolbox für Linux-Anwendungenund verwenden Sie dann den lsof
Befehl.
Antwort2
Wenn XXX derpid
file /proc/XXX/fd/* | grep /dev/pt
Sie erhalten jedoch mehrere Zeilen pro PTY, wenn der Prozess es für mehrere Rollen geöffnet hat (wie stdin, stdout und stderr).
Aber ich denke, das wird bei AIX vs. Linux nicht helfen, es sei denn, AIX hat sich seit meiner letzten Verwendung stark verändert.