Lo que necesito: una lista de todos los ejecutables actualmente en ejecución con su ruta completa.
Algo como esto:
1234 /ruta/completa/al/ejecutable 4567 /ruta/completa/al/ejecutable2
Usando UNIX95= ps -exo pid,comm
puedo obtener una lista con PID y comandos como este
11146 /opt/wbem/lbin/cimprovagt 0 4 8 raíz IOTreeModule 8338 /opt/ssh/libexec/sftp-servidor 16684 postgres: sfmdb evweb [local] inactivo 2518 /usr/sbin/stm/uut/bin/tools/monitor/WbemWrapperMonitor 2264 /usr/sbin/psb/bin/diagtxd 8340 -sh 7772 sshd: raíz@pts/0 8333 sshd: raíz@pts/1 7777 /opt/ssh/libexec/sftp-servidor
Esto es lo más parecido que he logrado usar ps
, pero no es lo suficientemente bueno:
- Algunas líneas no incluyen la ruta completa (aparentemente porque no se inician usando la ruta completa).
- Datos adicionales después del nombre del ejecutable (necesito admitir ejecutables con espacios en su nombre para no poder simplemente dividir la cadena)
Como tal, he llegado a la conclusión de que eso ps
no me llevará hasta el final.
¿Existe un equivalente al /proc de Linux donde /proc/{pid}/exe apunta al ejecutable? Si no, ¿hay otra manera de lograrlo?
Gracias de antemano,
Respuesta1
pfiles <pid>
puede enumerar la ruta completa al ejecutable.
Ejemplo:
Fragmento deUNIX95=1 ps -efo pid,comm
1666 cimprovagt
ahora vamos a correrpfiles 1666
1666: /opt/wbem/lbin/cimprovagt
0: S_ISCHR mode:666 dev:64,3 ino:124 uid:2 gid:2 rdev:3,2
flags = O_RDONLY|O_LARGEFILE
file = /dev/null
La primera línea muestra la ruta completa al ejecutable. Esto es suficiente para mis propósitos.