私がwget
バックグラウンドで使用するコマンドは次のとおりです。
wget -bq
それは印刷する
バックグラウンドで引き続き実行します(PID 31754)。
ただし、コマンドを入力すると、jobs
私のタスクは表示されません(ダウンロードはまだ完了していませんが)。
答え1
wget
-b
または一緒に--background
使用する場合それ自体現在のシェルから切断して背景に入ります(子プロセスをフォークして親プロセスを終了することで)。バックグラウンドに非同期ジョブとして入れるシェルではないため、使用時にジョブとして表示されませんjobs
。
wget
シェルで非同期(バックグラウンド)ジョブとして実行するには、以下を使用します。
wget ... URL &
これにより、出力をファイルにリダイレクトするか(使用するとwget
自動的にこの操作が行われます)-b
にリダイレクトするか、またはを/dev/null
使用して-q
削除できます--quiet
。
答え2
それ自体が背景に置かれているからです。&
bashにこれをバックグラウンドにして、bashのタスクリストに入れるように指示するために使用されます。
背景とジョブ制御のリストが異なります。 Bashはすべてのバックグラウンドプロセスをジョブ制御リスト(デフォルト)に配置します。ただし、プロセスはリストに入れることなくバックグラウンドで処理できます。 bashだけがリストにアクションを入れることができます。
このオプションには利点があるかもしれません-bg
(何がわかりません)。たとえばssh
、バックグラウンドに配置する前にパスワードが必要なバックグラウンドオプションがあります。
答え3
pidが31754のプロセスが存在します。入力すると、ps -e |grep 31754
フォアグラウンドに戻ることができる操作ではないため、jobsコマンドはそれを表示しません。wget -bq
再び前景に移動することを選択しなくても、自動的に出力を背景に送信します。
答え4
私は通常、tail wget-log
ダウンロードの状況を把握するためにログの最後の数行を表示します。