"Pekerjaan latar belakang" hanyalah salah satu yang tidak berinteraksi dengan pengguna -- ia tidak mengontrol tty dan hanya melakukan tugasnya (umumnya diam-diam). Pekerjaan latar depan adalah kebalikannya, ia memegang kendali atas tty untuk berinteraksi dengan pengguna.
Control-Z menangguhkan proses latar depan terbaru (proses terakhir untuk berinteraksi dengan tty) (kecuali jika proses tersebut mengambil langkah untuk mengabaikan penangguhan, seperti yang biasanya dilakukan shell). Ini umumnya akan membawa Anda kembali ke shell Anda, dari mana Anda biasanya dapat memasukkan perintah bg
untuk memindahkan proses yang baru saja ditangguhkan ke latar belakang (membiarkannya terus berjalan) atau fg
untuk membawanya kembali ke latar depan.
Menekan Ctrl+Z mengirimkan TSTP
sinyal ke proses Anda. Ini menghentikan eksekusi (kernel tidak akan menjadwalkan waktu CPU lagi untuk proses) dan proses sedang menunggu CONT untuk melanjutkan pemrosesan.
Anda dapat meniru/mereplikasi ini melalui kill -TSTP
dan kill -CONT
(sejak kill
akan mengirimkan sinyal yang ditunjuk ke proses Anda, terlepas dari namanya!)
Shell memiliki fungsi untuk 'melatarkan' proses, tetapi ini adalah hubungan antara shell dan proses. Prosesnya sendiri tidak benar-benar memiliki konsep 'latar belakang' atau 'latar depan'.
Lihat di sini untuk info lebih lanjut.
Pertimbangkan perintah ini, yang membutuhkan kira-kira. 4,5 detik di laptop saya:
echo 2^10000000 | bc -lq | wc -c
Saat Anda menekan Ctrl +Z , perhitungan akan ditangguhkan. Anda memiliki opsi untuk melanjutkan perhitungan di latar depan menggunakan fg
, atau lanjutkan di latar belakang menggunakan bg
. Yang terakhir kurang lebih sama dengan mengeksekusi:
echo 2^10000000 | bc -lq | wc -c &