50% de descuento Todos los planes, tiempo limitado. A partir de $2.48/mo
Quedan 8 minutos
Servidores y SO

Cómo funciona el comando nohup en Linux: sintaxis, casos de uso y ejemplos

Ada Lovegood By Ada Lovegood 8 minutos de lectura Actualizado el 14 de julio de 2024
comando nohup

Si es desarrollador de Linux, sabe la importancia de la coherencia y la confiabilidad de sus sesiones. Los procesos de larga duración en Linux deben continuar incluso después de cerrar sesión. Afortunadamente, Linux cuenta con un comando funcional para este propósito. El comando nohup le permite mantener los comandos ejecutándose ininterrumpidamente en segundo plano. De esta manera evita la pérdida de datos y ahorra un tiempo valioso. Esta guía le explicará todo lo que necesita saber sobre el comando nohup de Linux, desde su sintaxis y opciones hasta ejemplos prácticos y solución de errores comunes.

Comprender la sintaxis nohup de Linux

El comando nohup es sencillo y fácil de usar. Le permite ejecutar comandos o scripts en segundo plano para estar seguro de que continuarán ejecutándose incluso después de cerrar sesión en la terminal. Aquí se explica cómo usarlo:

nohup [command] [arguments] &

Deberías reemplazar [dominio] con el comando o script que desea ejecutar. Y [argumento] son los argumentos u opciones requeridos por el comando. El & El símbolo envía el comando para que se ejecute en segundo plano. Veamos un ejemplo:

nohup myscript.sh &

En este ejemplo, myscript.sh es un script bash que continuará ejecutándose incluso si cierra la terminal. La salida será redirigida a un archivo llamado nohup.out de forma predeterminada a menos que especifique otra ruta.

Explorando las opciones de nohup

Si bien el comando nohup en sí no tiene muchas opciones, comprender cómo usarlo de manera efectiva con varios comandos y técnicas de redirección puede mejorar su rendimiento. Primero, veamos cómo podemos obtener información sobre el comando nohup:

nohup –-help 
nohup --version

Estos dos comandos le brindan información útil al mostrar el mensaje de ayuda y la versión de nohup.

Ejecutando un proceso con el comando nohup

Si deseas ejecutar un proceso con el comando nohup, puedes seguir la misma estructura que expliqué en la última sección:

nohup [command]

Si desea ejecutar un proceso en segundo plano, simplemente agregue & hasta el final de tu mando.

Ejecutar múltiples procesos en segundo plano con el comando nohup

Ahora bien, ¿qué sucede si desea ejecutar más de un proceso en segundo plano usando el comando nohup?

nohup bash -c '[command A] && [command B]' &

Reemplazar [comando A] y [comando B] con los comandos que desea ejecutar en segundo plano. Imagine que primero desea actualizar los paquetes de su sistema y luego limpiar los archivos innecesarios y desea hacerlo usando el comando nohup:

nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &

En este ejemplo, nohup permite que los procesos de actualización y limpieza continúen ejecutándose en segundo plano. De esta manera, las tareas de mantenimiento de su sistema se completan sin necesidad de mantener el terminal abierto.

Redirigir la salida personalizada

El resultado de este proceso será redirigido a nohup.out por defecto. Pero, ¿qué pasa si desea recibir el resultado en otra ruta? Así es como puedes hacerlo:

nohup [command] > [/path/to/new/output.txt]

Recuerde reemplazar los valores en [] con el comando y la ruta del archivo que desee.

Combinando nohup con otros comandos

nohup se puede combinar con otros comandos y canalizaciones para crear poderosas cadenas de comandos. Veamos un ejemplo de esto:

nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &

Aquí, el encontrar El comando se utiliza para buscar archivos de registro y grep se utiliza para buscar el término “ERROR”. La salida combinada se redirige a error_logs.txt.

En esta sección, cubrimos las opciones y casos de uso más comunes del comando nohup. Si domina estas instrucciones, podrá utilizar nohup de forma eficaz para ejecutar procesos de Linux en segundo plano.

Errores comunes y solución de problemas

Usar el comando nohup es generalmente sencillo, pero es posible que se produzcan algunos errores comunes durante el proceso. Comprender estos errores y saber cómo solucionarlos puede ahorrarle tiempo y frustración. Entonces, veamos cuáles son estos errores comunes y cómo solucionarlos:

Permiso denegado

Este error ocurre cuando el script o comando que está intentando ejecutar no tiene permiso de ejecución. La salida del error se ve así: nohup: no se pudo ejecutar el comando 'myscript.sh': permiso denegado

Para resolver este problema, debe asegurarse de que el script o comando tenga los permisos correctos. Puede agregar permiso de ejecución usando el chmod dominio:

chmod +x myscript.sh 
nohup ./myscript.sh &

Comando no encontrado

Este error ocurre si el comando o script no se encuentra en la ubicación especificada o no está disponible en su RUTA. La salida del error se ve así: nohup: no se pudo ejecutar el comando 'myscript.sh': no ​​existe tal archivo o directorio

Para solucionar este error debes verificar que el comando o script exista y esté en el directorio correcto. Es posible que tengas que proporcionar la ruta absoluta al script:

nohup /path/to/myscript.sh &

También asegúrese de que el comando esté instalado y disponible en su RUTA.

Sin salida

A veces, puede notar que no hay salida en la terminal o en el archivo de salida. Si el comando produce un resultado, pero no lo ve, es posible que se redirija a una ruta distinta al archivo predeterminado o que haya un problema con los permisos del archivo. Para solucionar este problema, debe especificar explícitamente el archivo de salida para asegurarse de que se redirija correctamente:

nohup myscript.sh > output.log 2>&1 &

Como ejemplo, este comando redirige tanto la salida estándar como el error estándar a un archivo llamado output.log.

El script no se ejecuta en segundo plano

A veces, su secuencia de comandos o comando parece estar ejecutándose, pero no en segundo plano. La razón suele ser sencilla. Es posible que haya olvidado agregar el & símbolo al final del comando para ejecutarlo en segundo plano. La solución también es simple, solo asegúrate de haberla agregado y listo.

Proceso colgado o que no responde

Un proceso iniciado con nohup podría bloquearse o dejar de responder. Esto puede suceder si el proceso está esperando entradas o si hay problemas con los recursos a los que intenta acceder. Hay dos soluciones a este problema:

  • Verifique la entrada requerida: Asegúrese de que el comando no requiera ninguna entrada interactiva.
  • Problemas de recursos: Verifique que el comando tenga acceso a los recursos necesarios (por ejemplo, archivos, red).

Sobrescribiendo nohup.out

Si está ejecutando varios procesos en segundo plano usando el comando nohup, puede sobrescribir involuntariamente el nohup.out archivo. Para evitar este problema, puedes elegir una ruta específica para cada proceso. De esta manera, cada proceso tiene su archivo de salida único y la ruta predeterminada no se sobrescribe.

Al conocer el error común de nohup y sus soluciones, podrá utilizar el comando nohup sin ningún problema.

Conclusión

El comando nohup es una gran herramienta para cualquier usuario de Linux que necesite ejecutar procesos en segundo plano porque garantiza que sus procesos continúen ejecutándose incluso después de cerrar sesión. En esta guía, cubrimos la sintaxis básica, exploramos varias opciones y analizamos errores comunes junto con consejos para la solución de problemas. Dominar el comando nohup le permite gestionar tareas de larga duración de manera eficiente, lo que mejora su productividad y sus habilidades de gestión del sistema.

Si es un desarrollador de Linux y busca maximizar su experiencia con Linux, considere actualizar a un software confiable. VPS Linux. Nuestro servicio VPS basado en la nube ofrece soporte 24 horas al día, 7 días a la semana y una garantía de tiempo de actividad del 99,95%, lo que significa que sus aplicaciones se ejecutan sin problemas en todo momento y puede obtener ayuda en cualquier momento del día. Con una infraestructura robusta y recursos confiables, nuestro VPS está diseñado para satisfacer las demandas de los programadores de Linux. Además, puede tener preinstalada su distribución de Linux preferida, lo que hace que la configuración sea rápida y sencilla. Lleve sus proyectos de Linux al siguiente nivel con un VPS que brinde la potencia y flexibilidad que necesita.

Preguntas frecuentes

¿Cuál es la diferencia entre nohup y &?

nohup evita que un proceso finalice cuando el usuario cierra la sesión, mientras & ejecuta un proceso en segundo plano. Usando nohup garantiza que el proceso continúe después del cierre de sesión y al combinarlo con & permite que se ejecute en segundo plano.

¿Por qué se utiliza nohup?

nohup se utiliza para garantizar que un comando o script continúe ejecutándose incluso después de que el usuario cierre la sesión o se cierre la terminal. Es esencial para procesos de larga duración que deben permanecer activos sin la intervención del usuario.

¿Qué es el archivo nohup out?

El nohup.out file es el archivo de salida predeterminado donde nohup redirige la salida estándar y el error estándar de un comando. Si no se especifica ningún otro archivo de salida, la salida del comando se guarda en nohup.out en el directorio actual.

Compartir

Más del blog

Sigue leyendo.

Las mejores aplicaciones autohospedadas que puede ejecutar con Imagen de portada de Cosmos Cloud con paneles de aplicaciones alrededor de un panel de Cosmos.
Servidores y SO

Las mejores aplicaciones autohospedadas que puede ejecutar con Cosmos Cloud: archivos, medios, contraseñas, automatización y más.

Tal vez hayas configurado Cosmos Cloud y ahora quieras ver qué aplicaciones combinan bien con él, o tal vez aún no te hayas decidido por Cosmos y solo quieras ver qué tan bien se adapta a tu trabajo.

Nick PlataNick Plata 16 minutos de lectura
Portainer vs Cosmos Cloud para administrar aplicaciones Docker cubren un diagrama de configuración híbrida y operaciones de neón frente a bloques de acceso.
Servidores y SO

Portainer vs Cosmos Cloud: la mejor opción para la gestión de aplicaciones Docker

Si ya conoce Docker y solo desea una forma más limpia de ejecutar una pila de aplicaciones en crecimiento, aquí está la respuesta breve a Portainer vs Cosmos Cloud. Portainer es la elección más fuerte para la dirección

Nick PlataNick Plata 14 minutos de lectura
Gráfico de características de Cosmos Cloud, CasaOS y Umbrel que muestra tres rutas autohospedadas dentro de un mundo abstracto de red en la nube.
Servidores y SO

Cosmos Cloud vs CasaOS vs Umbrel: ¿Qué plataforma autohospedada se adapta a su configuración?

La respuesta corta es que CasaOS sigue siendo el lugar más fácil para comenzar, Umbrel tiene la sensación más limpia y Cosmos Cloud tiene más sentido una vez que desea un control más estricto sobre el dominio.

Nick PlataNick Plata 11 minutos de lectura

¿Listo para implementar? Desde $2,48/mes.

Nube independiente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Devolución de dinero en 14 días.