Saya memiliki, misalnya, tar cvf /backup/backup.tar
yang berjalan lama dan bertele-tele perintah yang menampilkan banyak teks ke layar*. Saya tidak selalu ingin melihat semua output sepanjang waktu. Saya ingin menghentikan keluaran teks, melakukan hal-hal lain, lalu kembali ke sana dan "melanjutkan" untuk melihat sejauh mana proses pencadangan. Saya mengharapkannya untuk berperilaku seperti
/files/big_file_1
/files/big_file_2
/files/big_file_3
# Ctrl+s
# Do other stuff
# Ctrl+q , notice big jump in progress
/home/user/.bash_history
/home/user/small_file_1
/home/user/small_file_2
/home/user/small_file_3
...
Ctrl+s menghentikan output ke layar (dan Ctrl+q melanjutkan output ke layar), sedangkan Ctrl+z menangguhkan proses dan saya kembali ke prompt PS1. Pertanyaan saya adalah, apakah Ctrl+s membuat perintah tetap berjalan?
Selama tar
yang disebutkan di atas perintah, saya akan menyorot file terakhir TARred biarkan selama beberapa menit, Ctrl+q, dan file berikutnya tampaknya berada di direktori yang sama, atau setidaknya dalam direktori yang relatif dekat.
*Saya menggunakan Putty di Windows, jadi jika perilakunya berbeda dengan terminal standar di Linux/Unix, saya minta maaf.
Jawaban yang Diterima:
Pertanyaan saya adalah, apakah Ctrl+s membuat perintah tetap berjalan?
Ya, hingga buffer sistem terisi, dan proses mulai memblokir untuk dapat menulis ke terminal. Jadi, itu tidak akan berjalan tanpa batas. Selain itu, Anda tidak akan dapat menjalankan apa pun di terminal yang sama karena outputnya diblokir.
Untuk beralih dari program sambil tetap memungkinkan untuk kembali, pilihannya adalah:
- Jalankan terminal lain di samping (Putty lain, koneksi SSH lain)
- Jalankan
screen
atautmux
untuk menggandakan beberapa "jendela" di dalam terminal yang sama - Arahkan output ke file, jalankan perintah di latar belakang, lalu intip file saat Anda ingin:
tar cvf ... > /tmp/tar.out &
dantail /tmp/tar.out