linux - script - nohup ubuntu
Cómo obtener una lista de programas que se ejecutan con nohup (5)
Estoy accediendo a un servidor que ejecuta CentOS (distribución de Linux) con una conexión SSH. Como no siempre puedo permanecer conectado, uso "nohup [comando] &" para ejecutar mis programas.
No pude encontrar cómo obtener una lista de todos los programas que comencé a usar nohup. "trabajos" solo funciona antes de cerrar la sesión. Después de eso, si vuelvo a iniciar sesión, el comando jobs no me muestra nada, pero puedo ver en mis archivos de registro que mis programas aún se están ejecutando.
¿Hay alguna manera de obtener una lista de todos los programas que comencé a usar "nohup"?
En lugar de nohup
, deberías usar la screen
. Logra el mismo resultado: sus comandos se ejecutan "separados". Sin embargo, puede reanudar las sesiones de pantalla y volver a su terminal "oculta" y ver el progreso reciente dentro de esa terminal.
screen
tiene muchas opciones. La mayoría de las veces los uso:
Para iniciar la primera sesión de pantalla o para hacerse cargo de la más reciente individual:
screen -Rd
Para desconectarse de la sesión actual: Ctrl + A Ctrl + D
También puede iniciar varias pantallas: lea los documentos.
No se puede obtener exactamente una lista de comandos iniciados con nohup
pero puede verlos junto con sus otros procesos utilizando el comando ps x
. Los comandos que comienzan con nohup
tendrán un signo de interrogación en la columna TTY.
Si tiene salida estándar, redirija a "nohup.out" solo vea quién usa este archivo
lsof | grep nohup.out
También puede usar el comando superior y su ID de usuario indicará los trabajos en ejecución y sus tiempos.
$ top
(Esto mostrará todos los trabajos en ejecución)
$ top -U [user ID]
(Esto mostrará los trabajos que son específicos para la identificación del usuario)
Cuando comencé con $ nohup storm dev-zookeper
,
MÉTODO1: usar jobs
,
prayagupd@prayagupd:/home/vmfest# jobs -l
[1]+ 11129 Running nohup ~/bin/storm/bin/storm dev-zookeeper &
METHOD2: utilizando el comando ps
.
$ ps xw
PID TTY STAT TIME COMMAND
1031 tty1 Ss+ 0:00 /sbin/getty -8 38400 tty1
10582 ? S 0:01 [kworker/0:0]
10826 ? Sl 0:18 java -server -Dstorm.options= -Dstorm.home=/root/bin/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dsto
10853 ? Ss 0:00 sshd: vmfest [priv]
Columna TTY con ?
=> nohup
ejecutando programas.
Descripción
- Columna TTY = la terminal asociada con el proceso
- Columna STAT = estado de un proceso
- S = suspensión interrumpible (esperando a que se complete un evento)
- l = es multiproceso (utilizando CLONE_THREAD, como NPTL pthreads hacer)
Referencia
$ man ps
# luego buscar /PROCESS STATE CODES