¿Por qué no puedo ver el trabajo "wget" cuando lo ejecuto en segundo plano?

8

Yo uso el wgetcomando en segundo plano como este

wget -bq

y se imprime

Continuando en segundo plano, pid 31754.

Pero cuando escribo el comando jobs, no veo mi trabajo (aunque la descarga no ha finalizado).

Floyd
fuente
2
Puedes verlops -p 31754
pLumo
Jjobssolo funciona para (este) control de trabajo de shell (es decir &, anotación, ctrl-z o bgcommamd). Listado de proceso general ( ps -alo mostrará)
eckes el

Respuestas:

19

Cuando se utiliza wgetcon -bo --backgroundse pone en sí en el fondo disociando desde el shell actual ( al bifurcar fuera un proceso hijo y se concluye el padre ). Dado que no es el shell lo que lo pone en segundo plano como un trabajo asincrónico, no se mostrará como un trabajo cuando lo use jobs.

Para ejecutar wgetun trabajo asíncrono (en segundo plano) en el shell, use

wget ... URL &

Si hace esto, es posible que desee redirigir la salida a algún archivo (que lo wgethace automáticamente con -b), o descartarlo redirigiendo a /dev/null, o use -qo --quiet.

Kusalananda
fuente
1
bifurca a un niño y el padre sale
user2497
@ user2497 Sí, vea la respuesta actualizada.
Kusalananda
6

Porque lo puso en segundo plano. Use &para decirle a bash que lo ponga en segundo plano, y para ponerlo en la lista de trabajos de bash.

Los antecedentes y la lista de control de trabajos no son lo mismo. Bash coloca todos sus procesos en segundo plano en su lista de control de trabajos (por defecto), pero los procesos pueden tener antecedentes sin ser incluidos en la lista. Solo bash puede poner trabajos en su lista.

Puede haber ventajas para la -bgopción (no sé qué). Por ejemplo ssh, la opción de fondo, la pone en segundo plano después de solicitar una contraseña.

ctrl-alt-delor
fuente
3
Es -bq, es decir , -by -qno -bg.
Kusalananda
2

El proceso con pid 31754 existe; si escribe ps -e |grep 31754 pero como no es un trabajo que se puede mover al primer plano nuevamente, el comando de trabajos no lo muestra. wget -bqenvía automáticamente la salida al fondo sin opciones para moverla al primer plano nuevamente.

Dasel
fuente
pstiene una -popción que puede usarse para consultar un PID específico, o uno puede usar pgrep wget.
Kusalananda
0

Por lo general, uso tail wget-logpara ver las últimas líneas del registro, lo que me da una idea del estado de la descarga.

cooljay
fuente