¿Cómo puedo evitar que nohup cree el archivo ~ / nohup.out?


16

Uso el comando $ nohup ...para iniciar una aplicación en segundo plano para poder cerrar la ventana del terminal después.

Tras la ejecución, crea el archivo ~/nohup.out.

Ejemplo:

orschiro@x230:~$ nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py"
nohup: ignoring input and appending output to 'nohup.out'

¿Cómo puedo evitar nohupcrear nohup.out?


2
También podrías considerarlo byobu. :)
— Andrea Lazzarotto

¡Gracias, @AndreaLazzarotto! ¿Me puede dar un ejemplo de cómo usarlo?
— orschiro

2
Bueno, le sugiero que eche un vistazo al video aquí: byobu.co Básicamente, para lo que desea hacer, simplemente ejecute byobu, comience lo que quiera, luego presione F6y listo. Puede volver a ejecutarlo byobunuevamente.
— Andrea Lazzarotto

¡Excelente! ¿Es posible que desee agregar esto como respuesta oficial?
— orschiro

Técnicamente, mi sugerencia no responde a su pregunta en absoluto, es solo una alternativa. : D
— Andrea Lazzarotto

Respuestas:


20

Puede redirigir la salida a cualquier lugar que desee, por ejemplo:

nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1

la redirección evita que nohup.outse cree el archivo de salida predeterminado . /dev/nulles olvido, así que si no quieres los datos, envíalos allí.

En bash puedes abreviar >/dev/null 2>&1a&>/dev/null

Para los programas que uso con frecuencia, hago un alias (y lo agrego a mi .bashrc) por ejemplo

alias show_state='nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1'

Ahora todo lo que tengo que escribir es show_state


2
@orschiro: Después de unos años, no será críptico y lo recordarás;) sugiero que te quedes, porque aliasarlo significa que no ganarás esa experiencia, y sabiendo cómo los operadores de redireccionamiento BASH funcionan desde arriba de tu cabeza es una habilidad crucial.
— Lightness compite con Mónica el

¿No sería mejor esto como una función? Algo como show_state () { /bin/bash -c "$@" &>/dev/null }? (Advertencia: sintaxis pobre y probablemente no funcionará. ¡Es solo un ejemplo!). Un punto crítico: ¿por qué show_statecuando estás tirando la salida de nohup?
— Ismael Miguel

No sé qué hace el script @IsmaelMiguel, pero supongo que es un indicador con un icono de bandeja, no para imprimir "estado" (lo que sea) para stdout. Claro, una función puede ser más divertida que un alias ^. ^
— Zanna

¡Oh lo tengo! Lo sentimos, no vi el nombre del .pyarchivo. Y sí, una función es más divertida. Tengo esta función mal escrito en un escritorio de Debian: shutup() { source "$@" >/dev/null 2>&1 & }. Y funciona. Tal vez podrías sugerir algo similar, pero mucho mejor.
— Ismael Miguel

Nunca supe que &>funcionó (y en mi opinión, parece un fondo más una redirección estándar). Siempre lo aprendí como >&. ¿Es estándar?
— Random832
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.