BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

uso de nohup

BocaDePez
BocaDePez

hola tengo una duda. el comando nohup sirve para que al cerrar una sesion de ssh no se nos cierren los procesos que hemos creado, y poderlo recuperar despues.
¿se puede ejecutar el comando nohup para un proceso que se lanzo hace tiempo, pero no ha terminado y tenemos que inmunizarlo contra la señal hang up?
que otros comandos hay que hagan los mismo, al estilo screen?
en caso de un unix que no reconozca el comando nohup, que se puede hacer?
saludos

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
BocaDePez
BocaDePez

Que yo sepa, en GNU/Debian, nohup forma parte del paquete coreutils. Si quitas coreutils supongo que te cargas la Debian, así que nohup viene por defecto en todas las versiones de GNU/Debian, creo.

gnu.org/software/coreutils/manual/html_n…e/index.html

cabrero@debian:~$ which nohup
/usr/bin/nohup

Antes venían esas pijadas en GNU/Debian por separado, pero ahora lo metieron todo dentro del paquete Coreutils.

Si en tu distro no viene el comando nohup por defecto, a lo mejor nohup está disponible en un paquete llamado sh-utils (que en GNU/Debian pasó a formar parte del nuevo paquete Coreutils).

escomposlinux.org/lfs-es/lfs-es-3.3/chap…h-utils.html

También puede ser que lo tengas instalado, pero no se encuentra en el PATH.

scit.wlv.ac.uk/cgi-bin/mansec?1+nohup

Una herramienta mejor que el nohup sería unas tijeras para cortar en cualquier punto el par de metros de hilo de pescar (sedal) atado en un extremo en lo alto de un pino y el otro extremo en los cojones.

Say0nar4

¿se puede ejecutar el comando nohup para un proceso que se lanzo hace tiempo, pero no ha terminado y tenemos que inmunizarlo contra la señal hang up?

se puede hacer con disown (y con trap si te lo curras un poquillo)

🗨️ 4
BocaDePez
BocaDePez

disown -h pid es lo típico cuando no puedes usar screen o se te ha olvidado iniciarlo con nohup y no quieres que al cerrar la sesión el proceso se interrumpa, pero trap?, ese yo al menos pensaba que se usaba para encadenar procesos.

🗨️ 3
BocaDePez
BocaDePez

cabrero@debian:~$ echo www.vicente-navarro.com/blog/2007/04/19/sobre-la-senal-sighup-nohup-disown-trap/

Say0nar4

trap sirve para que se ejecute un comando/script cuando a un proceso le llegue una determinada señal

Puedes hacer que cuando a un proceso le llegue un kill (o como se llame la señal esa) se vuelva a llamar al mismo programa/comando en cuestión (esto sería un poco sucio ¿no?) o, simplemente hacer que ese "kill" sea ignorado.

Edito: efectivamente, he usado trap en algún script para este propósito, pero sólo se ejecuta dentro del script o en la shell que uses. Por lo tanto, se puede usar a priori, pero no después de que hayas lanzado el demonio, o lo que quieras que ya se esté ejecutando. Por lo tanto trap no le serviría para lo que el quiere.

🗨️ 1
Say0nar4

Aún así, lo mejor es acordarse de usar screen :P

BocaDePez
BocaDePez

Con nohup ejecutas comandos en background (nohup mi_comando &) y deja el resultado en el fichero nohup.out.