Saya menggunakan wget
perintah di latar belakang seperti ini
wget -bq
dan itu mencetak
Berlanjut di latar belakang, pid 31754.
Tetapi ketika saya mengetik perintah jobs
, saya tidak melihat pekerjaan saya (walaupun pengunduhan belum selesai).
ps -p 31754
Jjobs
hanya bekerja untuk kontrol pekerjaan shell (ini) (yaitu&
penjelasan, ctrl-z ataubg
commamd). Daftar proses umum (ps -a
akan menunjukkannya)Jawaban:
Saat menggunakan
wget
dengan-b
atau--background
menempatkan dirinya ke latar belakang dengan melepaskan dari shell saat ini ( dengan mengorbankan proses anak dan mengakhiri orangtua ). Karena itu bukan shell yang menempatkannya di latar belakang sebagai pekerjaan yang tidak sinkron, itu tidak akan muncul sebagai pekerjaan ketika Anda menggunakannyajobs
.Untuk menjalankan
wget
pekerjaan asinkron (latar belakang) di shell, gunakanJika Anda melakukan ini, Anda mungkin juga ingin mengarahkan output ke beberapa file (yang
wget
tidak otomatis dengan-b
), atau membuangnya dengan mengarahkan ulang ke/dev/null
, atau menggunakan-q
atau--quiet
.sumber
Karena itu menempatkan diri di latar belakang. Gunakan
&
untuk memberitahu bash untuk meletakkannya di latar belakang, dan untuk memasukkannya ke dalam daftar pekerjaan bash.Latar belakang dan daftar kontrol pekerjaan tidak sama. Bash menempatkan semua proses latar belakangnya ke dalam daftar kontrol pekerjaannya (secara default), tetapi proses dapat dilatar belakangi tanpa dimasukkan ke dalam daftar. Hanya bash yang dapat memasukkan pekerjaan dalam daftar.
Mungkin ada keuntungan dari
-bg
opsi ini (saya tidak tahu apa). Misalnyassh
opsi latar belakang, letakkan di latar belakang setelah meminta kata sandi.sumber
-bq
, yaitu-b
dan-q
, tidak-bg
.Proses dengan pid 31754 ada; jika Anda mengetik
ps -e |grep 31754
tetapi karena itu bukan pekerjaan yang dapat dipindahkan ke latar depan lagi, itu tidak ditampilkan oleh perintah pekerjaan.wget -bq
secara otomatis mengirim output ke latar belakang tanpa opsi untuk memindahkannya ke latar depan lagi.sumber
ps
memiliki-p
opsi yang dapat digunakan untuk permintaan PID tertentu, atau yang dapat digunakanpgrep wget
.Saya biasanya menggunakan
tail wget-log
untuk melihat beberapa baris terakhir dari log sehingga memberi saya gambaran tentang status unduhan.sumber