Supongamos que ejecuté el proceso con el siguiente comando:
myapp -e -c -f myapp.config > /var/log/myapp/myapp.log 2>&1
Después de un tiempo, solo tengo pid
un myapp
proceso, por ejemplo, 1234. ¿Hay alguna manera de obtener el comando con todos los indicadores y redirigir la salida de myapp.log
alguna manera simplemente por pid
?
Respuesta1
ps -o args= -p "$pid"
Le indicará la lista de argumentos dada al último comando que ejecutó el proceso (o si no ejecutó ninguno, el que ejecutó su padre...) siempre que el proceso no anule su lista de argumentos posteriormente.
ps
mostrará esa lista de argumentos concatenada con espacios y hasta un límite que puede aumentar con algunas ps
implementaciones agregando un par de -w
opciones). En Linux, puede ver la lista de argumentos separada por bytes NUL en formato /proc/$pid/cmdline
.
lsof +fg -ap "$pid" -d 0-2
Le dirá a qué apuntan los descriptores de archivos stdin, stdout y stderr del proceso y el modo en el que se abrieron (por ejemplo, W,AP
solo escritura con anexo, como si >>
se usara una redirección en un shell POSIX).
Respuesta2
Puede usar el ps
comando y especificar el pid para examinar con el -p
modificador, usando el -f
modificador para proporcionar una lista completa o -l
para una lista larga más detallada.
Como ejemplo de salida:
$ sleep 60 &
[1] 31441
$ ps -lp 31441
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 31441 31319 0 80 0 - 1423 hrtime pts/3 00:00:00 sleep
$ ps -fp 31441
UID PID PPID C STIME TTY TIME CMD
root 31441 31319 0 10:44 pts/3 00:00:00 sleep 60
Sin embargo, esto genera una línea de encabezado, que quizás no desee en su archivo de registro. Puedes recortar esto usando la -h
opción, si tu pid era 1234:
ps -lhp 1234 >> /var/log/myapp/myapp.log 2>&1
Tenga en cuenta que he redirigido la salida usando >>
para agregar a su archivo de registro.
Respuesta3
Al usarlo, ps -f
puede verificar la lista de argumentos y también redirigirla a cualquier archivo.
Entonces, en este caso solo usaps -ef | grep 1234 > myapp.log
Por favor, chequee estops página de manual.