GNU/Linux >> Linux の 問題 >  >> Ubuntu

バックグラウンドプロセスの出力を確認できるのはなぜですか?

たとえば、 ping 8.8.8.8&と入力すると 、なぜpingプロセスが機能しているのを確認できますか?そして、 find / -name'* test *'&と入力すると 、モニターにも表示されます。

何故ですか?本当にバックグラウンドではありませんか?

ベストアンサー

コマンドをバックグラウンドで実行するようにシェルに指示します。つまり、コマンドはフォークされ、ジョブとして非同期で別のサブシェルで実行されます。

を置くときは注意してください 出力–stdoutとstderrの両方 –引き続き画面に印刷されます 。画面に出力を表示したくない場合は、両方の stdoutをリダイレクトします およびstderr 次の方法でファイルに追加:

myscript > ~/myscript.log 2>&1 &

通常、 stderrを破棄することをお勧めします / dev / nullにリダイレクトします 後でエラーを分析する必要がない場合。

別々のサブシェルで、コマンド/スクリプトを同時に実行することもできます。たとえば;

./script1 & ./script2 & ./script3 & 

コマンドを終了する前に、バックグラウンドジョブをコマンドラインに戻すことができます:

fg <job-number>

job-number 実行することで取得できます

jobs

Ubuntu
  1. Grep-o-wでMacOsXで期待される出力が得られないのはなぜですか?

  2. 別のプロセスにパイプするとき、Ansiエスケープコードはどこに行きますか?それらを保持できますか?

  3. 次のボタンが表示されません(Vmwareへのubuntuのインストール)?

  1. 入力時にカーソルがジャンプするのはなぜですか?

  2. ルートだけがマウントできます、なぜですか?

  3. カーネルがプロセスと同じアドレス空間にマップされるのはなぜですか?

  1. 子プロセスのPgidが親のPidではないのはなぜですか?

  2. ターミナルでスクロールできないのはなぜですか?

  3. コマンドがパイプされたときに slabtop -o が最初の 23 行しか返さないのはなぜですか?