J'utilise la wget
commande en arrière-plan comme ceci
wget -bq
et il imprime
Continuant en arrière-plan, pid 31754.
Mais lorsque je tape la commande jobs
, je ne vois pas mon travail (bien que le téléchargement ne soit pas terminé).
J'utilise la wget
commande en arrière-plan comme ceci
wget -bq
et il imprime
Continuant en arrière-plan, pid 31754.
Mais lorsque je tape la commande jobs
, je ne vois pas mon travail (bien que le téléchargement ne soit pas terminé).
ps -p 31754
Jjobs
ne fonctionne que pour le contrôle de travail du shell (this) (à savoir&
annotation, ctrl-z oubg
commamd). Liste du processus général (ps -a
l'affichera)Réponses:
Lors de l' utilisation
wget
avec-b
ou--background
il met lui-même en arrière - plan en dissociant de la coquille en cours ( par dédoublement off un processus enfant et se terminant le parent ). Comme ce n'est pas le shell qui le met en arrière-plan en tant que travail asynchrone, il n'apparaîtra pas comme un travail lorsque vous utilisezjobs
.Pour exécuter
wget
un travail asynchrone (en arrière-plan) dans le shell, utilisezSi vous faites cela, vous pouvez également rediriger la sortie vers un fichier (qui le
wget
fait automatiquement avec-b
), ou le supprimer en redirigeant vers/dev/null
, ou utiliser-q
ou--quiet
.la source
Parce qu'il s'est mis en arrière-plan. Utilisez
&
pour dire à bash de le mettre en arrière-plan et de le mettre dans la liste des tâches de bash.L'arrière-plan et la liste de contrôle des travaux ne sont pas identiques. Bash place tous ses processus d'arrière-plan dans sa liste de contrôle des travaux (par défaut), mais les processus peuvent être mis en arrière-plan sans être placés dans la liste. Seul bash peut mettre des jobs dans sa liste.
Il peut y avoir des avantages à l'
-bg
option (je ne sais pas quoi). Par exemplessh
, l'option d'arrière-plan la place en arrière-plan après avoir demandé un mot de passe.la source
-bq
, c'est à dire-b
et-q
non-bg
.Le processus avec le pid 31754 existe; si vous tapez
ps -e |grep 31754
mais comme ce n'est pas un travail qui peut être déplacé à nouveau au premier plan, il n'est pas affiché par la commande jobs.wget -bq
envoyer automatiquement la sortie à l'arrière-plan sans options pour la déplacer à nouveau au premier plan.la source
ps
a une-p
option qui peut être utilisée pour interroger un PID spécifique, ou on peut utiliserpgrep wget
.J'utilise habituellement
tail wget-log
pour voir les dernières lignes du journal me donnant ainsi une idée de l'état du téléchargement.la source