Saya penasaran dan bingung bahwa apa sebenarnya perilaku CTRl + Z.
Saya tahu, Jika suatu proses dalam menjalankan di latar depan, dan kami menekan ctrl + z, ia pergi ke latar belakang.
Tetapi apa yang sebenarnya terjadi.
Apakah itu tetap melakukan pekerjaannya, atau ditangguhkan, dan berhenti pada titik di mana ia berada.
Dan jika dihentikan pada saat itu, dan apa arti dari pekerjaan latar belakang.
Jawaban:
"Pekerjaan latar belakang" hanyalah pekerjaan yang tidak berinteraksi dengan pengguna - ia tidak mengontrol tty dan hanya melakukan hal tersebut (umumnya secara diam-diam). Pekerjaan latar depan adalah kebalikannya, ia memegang kendali tty untuk berinteraksi dengan pengguna.
Control-Z menunda proses latar depan terbaru (proses terakhir untuk berinteraksi dengan tty) (kecuali proses itu mengambil langkah-langkah untuk mengabaikan suspensi, seperti shell biasanya). 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) ataufg
membawanya kembali ke latar depan.sumber
fg
terlebih dahulu mengidentifikasi pekerjaan dengan mengeluarkanjobs
lalu katakan apakah% 1 maka masalahfb %1
dan proses akan dilanjutkanfg %1
tidakfb %1
Menekan Ctrl + Z mengirim
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
dankill -CONT
(karenakill
akan mengirim sinyal yang dinominasikan untuk proses Anda, terlepas dari namanya!)Shell memiliki fungsi untuk 'latar belakang' 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.
sumber
^Z
mengirimkan SIGTSTP, bukan SIGSTOPPertimbangkan perintah ini, yang membutuhkan sekitar. 4,5 detik di laptop saya:
Saat Anda menekan Ctrl+ Z, perhitungan akan ditangguhkan. Anda memiliki opsi untuk melanjutkan perhitungan di latar depan menggunakan
fg
, atau melanjutkannya di latar belakang menggunakanbg
. Yang terakhir kurang lebih setara dengan mengeksekusi:sumber
Suatu proses ditangguhkan dan dihentikan ketika menekan ctrl + z. Dengan fg Anda dapat memindahkan pekerjaan yang ditangguhkan ke latar depan, dengan bg Anda dapat menjalankannya di latar belakang.
Lihat http://linuxreviews.org/beginner/jobs/ untuk informasi lebih lanjut.
sumber