Cómo obtener el pty abierto para un proceso en segundo plano determinado (sin iniciar sesión) en AIX

Cómo obtener el pty abierto para un proceso en segundo plano determinado (sin iniciar sesión) en AIX

Usando esta respuestahttps://unix.stackexchange.com/a/283521/114939que nos permiten encontrar procesos que mantienen abierto un pty determinado sin iniciar sesión ( whoel comando no puede mostrarlos), me hizo preguntar lo contrario.

¿Cómo obtener los pty abiertos para un proceso determinado en sistemas AIX? (para aquellos iniciados en segundo plano y no "adjuntos" a un inicio de sesión de terminal/pty).

Respuesta1

AIX tiene un /procsistema de archivos (¿desde aproximadamente 5.1?) y puede enumerar los descriptores de archivos abiertos para un pid conperfiles:

$ 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

Para dispositivos abiertos como pty, solo se proporcionan el inodo y los números mayor/menor, pero debería poder relacionarlos fácilmente con los que se muestran mediante un simple archivo ls -l /dev/pts/.

También puedes instalar elCaja de herramientas AIX para aplicaciones Linuxy luego use el lsofcomando.

Respuesta2

Si XXX es elpid

file /proc/XXX/fd/* | grep /dev/pt

Pero obtendrás varias líneas por pty si el proceso lo tiene abierto para múltiples roles (como stdin stdout y stderr)

Pero supongo que esto no ayudará para AIX vs Linux, a menos que AIX haya cambiado mucho desde la última vez que lo usé

información relacionada