Saya sudah tahu bahwa menekan ctrl+z
berhenti aplikasi, maka saya dapat mengirim aplikasi ke latar belakang dengan bg
perintah, tetapi itu berarti ada beberapa waktu singkat bahwa aplikasi dihentikan.
Bagaimana cara mengirim aplikasi langsung ke latar belakang tanpa menghentikannya?
shell
command-line
background-process
jobs
trusktr
sumber
sumber
ctrl+z
diikuti dengan menjalankan perintahbg
. Apakah ada kombo keystroke tunggal untuk mengirim aplikasi ke latar belakang?Jawaban:
Mengirim aplikasi dari latar depan ke latar belakang membutuhkan kerja sama dari terminal dan shell. Terminal tidak dapat melakukannya sendiri, karena shell harus mengatur grup proses latar depan. Shell tidak dapat melakukannya sendiri, karena terminal harus memproses penekanan tombol (shell tidak berada di latar depan, sehingga tidak dapat menerima penekanan tombol).
Perkiraan yang dekat adalah mengirim aplikasi ke latar belakang dengan sangat cepat. Bagaimanapun, aplikasi berbagi waktu CPU dengan yang lain dan jeda beberapa ratus detik tidak menjadi masalah. (Ini berlaku untuk aplikasi waktu-nyata, jadi pastikan untuk memulai yang di latar belakang.) Saya menggunakan shell binding untuk Ctrl+ Zyang mengirimkan pekerjaan foregrounded terakhir ke latar belakang. Dengan begitu, menekan Ctrl+ Z Ctrl+ Zmengirim pekerjaan ke latar belakang dengan waktu suspensi minimal.
Inilah zsh mengikat saya, yang juga "latar belakang" perintah setengah diketik ketika baris perintah tidak kosong .
Dalam bahasa Inggris, untuk pengguna non-zsh di audiensi:
Tentukan fungsi shell yang melakukan hal berikut:
Bind fungsi ini ke Ctrl+ Z.
Jika Anda hanya ingin perilaku latar belakang terlepas dari apakah baris perintah kosong:
Saya tidak tahu apakah Anda dapat melakukan hal yang sama di bash. Seharusnya semudah
bind -x '"\C-z": bg'
, kecuali bahwa bash meninggalkan karakter tty stop di tempatnya, sehingga Ctrl+ tidak pernah mendapat + Zsebagai input.sumber
Anda bisa latar belakang tugas dengan menambahkan
&
setelahnya.Misalnya
tail -f /var/log/messages &
akan segera latar belakang tugas.Seperti biasa Anda dapat melihat tugas apa yang Anda latar belakang dengan
jobs
perintah.Ini tentu saja mengasumsikan Anda belum menjalankan perintah.
sumber
ctrl+z
kemudian jalankanbg
di baris perintah untuk aplikasi berjalan di latar belakang. Tetapi antara menekanctrl+z
dan mengeksekusibg
, ada jangka waktu bahwa aplikasi sepenuhnya dijeda. Saya tidak menginginkan itu. Bagaimana saya mengirimnya ke latar belakang segera ?Latar belakang suatu perintah dilakukan dengan menambahkan ampersand ke perintah tersebut.
Jika sudah berjalan, satu-satunya pilihan Anda adalah menghentikannya, lalu latar belakang.
sumber