Proceso que se ejecuta en el fondo con nohup

Yo trabajo en servidores remotos mucho. Yo uso de SSH para conectarse a mis servidores. Muy a menudo me quedo un proceso que tengo que dejar correr incluso después de cerrar mi conexión SSH. Esto podría ser un shell script que analiza a través de mis archivos de registro o muy grande de restauración de base de datos MySQL. Fue entonces cuando me dirijo a una utilidad de línea de comandos de Linux llamada “nohup”. “Nohup” es la abreviatura de “no cuelgue”, que se traduce en “ignorar la señal de cuelgue”. La señal de “colgar” es lo que ocurre al cerrar la sesión. Lo que “nohup” hace es que le permite iniciar sesión en el servidor, inicie un proceso y cerrar la sesión. El proceso sigue funcionando incluso después de haber cerrado la sesión. Al iniciar la sesión de nuevo puede acceder a ese proceso de nuevo, siempre que su aún en marcha.

La sintaxis básica de “nohup” es:

# nohup [comando] &

Vídeo: Nohup - Because Of You

Reemplazar “[comando]” con el nombre de su script de shell o un comando. Los "&”Al final hace que el comando o script que se ejecuta como un proceso en segundo plano. Aquí está un ejemplo de cómo se usaría “nohup” para tomar una copia de seguridad de una base de datos MySQL grande en el servidor remoto. En primer lugar, puedo acceder a mi servidor remoto a través de SSH:

# ssh [email protected]

Vídeo: Disown Already Running Terminal Process Arch GNU / Linux

Luego ejecuto el comando “mysqldump -ucalvin -phobbes largedatabase gt; largedatabase.db”en el‘’modo mediante la adición de un‘nohup nohup’antes y“&”Después del comando:

# nohup mysqldump -ucalvin -phobbes largedatabase gt; largedatabase.db &
[1] 3999
# Nohup: Añadir a la salida a `nohup.out`

Hay dos líneas de producción que se obtiene. El “3999" en la primera línea es el ID de proceso del proceso que dio lugar a acabo, mientras que el “nohup: Añadir a la salida a` nohup.out `”significa que la opción de venta que por lo general llegan a la terminal se está remitiendo en un archivo llamado “nohup.out” en el directorio desde el que se puso en marcha el comando. Puede comprobar si el proceso todavía se está ejecutando mediante la búsqueda a través de todos los procesos en ejecución utilizando el ID de proceso:

# ps-ef | grep 3999
Calvin 3999 29848 0 18:42? 00:00:00 / usr / bin / mysqldump
Calvin 6575 31852 0 18:44 pts / 2 00:00:00 grep 3999

Cuando el proceso ha terminado de correr verá una salida en la línea de comando como este:

[1] + Hecho nohup mysqldump -ucalvin -phobbes largedatabase gt; largedatabase.db

Puede comprobar el archivo “nohup.out” para comprobar si hay errores u otros mensajes que eran de salida, mientras que el proceso estaba en marcha. Si el archivo permanece en blanco que está bien. Esto significa que no hay mensajes eran de salida, mientras que el proceso estaba en marcha.

Artículos Relacionados