GNU/Linux >> Belajar Linux >  >> Ubuntu

Mengapa Saya Dapat Melihat Output Dari Proses Latar Belakang?

Misalnya, ketika saya mengetik ping 8.8.8.8 & , mengapa kita bisa melihat proses ping bekerja? Dan ketika saya mengetik find / -name '*test*' & , itu juga terlihat di monitor.

Mengapa demikian? Bukankah itu benar-benar di latar belakang?

Jawaban Terbaik

& mengarahkan shell untuk menjalankan perintah di latar belakang, yaitu, perintah itu bercabang dan dijalankan di sub-kulit terpisah, sebagai pekerjaan, secara asinkron.

Perhatikan bahwa ketika Anda meletakkan & output – keduanya stdout dan stderr – akan tetap dicetak ke layar . Jika Anda tidak ingin melihat output apa pun di layar, arahkan ulang keduanya stdout dan stderr ke file dengan:

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

Biasanya Anda mungkin ingin membuang stderr dengan mengarahkannya ke /dev/null jika Anda tidak khawatir tentang menganalisis kesalahan nanti.

Anda bahkan dapat menjalankan perintah/skrip secara bersamaan, di sub-kulit terpisah. Misalnya;

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

Pekerjaan latar belakang dapat dibawa kembali ke baris perintah sebelum selesai dengan perintah:

fg <job-number>

job-number dapat diperoleh dengan menjalankan

jobs

Ubuntu
  1. Kirim Proses ke Latar Belakang di Debian 10 - Metode Terbaik?

  2. Mengapa Proses Pgid Anak Bukan Pid Orang Tua?

  3. Saya Tidak Dapat Melihat Tombol Berikutnya (Instalasi ubuntu Di Vmware)?

  1. Hanya Root yang Dapat Dipasang, Mengapa?

  2. Mengapa pipa shell ini keluar?

  3. Mengapa kernel dipetakan ke ruang alamat yang sama dengan proses?

  1. Mengapa Grep -o -w Tidak Memberi Saya Output yang Diharapkan Pada Mac Os X?

  2. Mengapa slabtop -o hanya mengembalikan 23 baris pertama saat perintah disalurkan?

  3. Apakah proses latar belakang mendapatkan SIGHUP saat log off?