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