A veces, un tiempo después de haber realizado un proceso de fondo bg
en bash, cuando presiono Enter en el mismo shell para volver a mostrar el mensaje (solo para verificar que todavía estoy en bash cuando se ha mostrado alguna salida del proceso en segundo plano), El proceso de fondo parece detenerse espontáneamente.
Si lo vuelvo a hacer, se bg
repite el mismo problema.
La única forma de solucionarlo parece ser fg
.
¿Por qué pasó esto?
terminal
io
job-control
background-process
Robin Green
fuente
fuente
Respuestas:
Esto suele suceder si el proceso intenta leer de su
stdin
secuencia. Cuando el proceso está en segundo plano, recibe una señal TTIN y, por lo tanto, se congela (el mismo comportamiento que una señal STOP). También existe la señal dual TTOU cuando un proceso en segundo plano intenta escribir en su terminal.Llevarlo a primer plano reanuda el proceso y le permite leer desde su terminal.
Manifestación:
Una de las formas de evitar esto es usarlo
nohup
, pero esto puede tener efectos extraños si el programa no trata de redireccionar su flujo de entrada/dev/null
.fuente