No veo nada más simple que ps
con los argumentos correctos, por ejemplo:ahxwwo pid,command
que da justo la información que desea, por ejemplo:
5911 tail -F /var/log/mail.log
Si desea datos sin procesar, puede leer cada archivo en /proc/[123456789]*/cmdline
. Por ejemplo,
$ cat -vet /proc/5911/cmdline
tail^@-F^@/var/log/mail.log^@
donde los argumentos del comando están separados por un carácter nulo.
La mayor parte del crédito es mío.
ps ahxwwo pid,command
Me da los tres elementos que necesito, pero sigue siendo bastante difícil de analizar debido al formato de espacio arbitrario.
Sin embargo, es posible eliminar el formato de espacio.
ps ahxwwo pid:1,command:1
Usando explode
con un espacio en blanco como delimitador ahora garantiza que el índice 0 es el pid, el índice 1 es el comando y los índices restantes son argumentos.