Bagaimana saya 'melampirkan' konsol / tampilan terminal ke output aplikasi sehingga saya dapat melihat apa yang mungkin dikatakannya?
Bagaimana cara melepaskan dari keluaran aplikasi tanpa mematikan aplikasi?
Biasanya jika Anda menjalankan aplikasi yang banyak bicara menggunakan baris perintah, Anda akan melihat semua jenis keluaran yang bagus. Namun, katakanlah saya menjalankan pemrograman yang sangat cerewet, seperti KINO, dan saya ingin melihat outputnya pada saat tertentu tanpa memulai ulang melalui baris perintah. Saya tidak bisa; setidaknya saya tidak tahu bagaimana caranya.
linux
logging
command-line-interface
aggitan
sumber
sumber
Jawaban:
Ada beberapa opsi di sini. Salah satunya adalah mengarahkan output dari perintah ke file, dan kemudian menggunakan 'tail' untuk melihat baris baru yang ditambahkan ke file itu secara real time.
Pilihan lainnya adalah meluncurkan program Anda di dalam 'layar', yang merupakan aplikasi Terminal berbasis teks. Sesi layar dapat dipasang dan dilepaskan, tetapi secara nominal dimaksudkan hanya untuk digunakan oleh pengguna yang sama, jadi jika Anda ingin membaginya di antara pengguna, itu sangat merepotkan.
sumber
Saya rasa saya memiliki solusi yang lebih sederhana di sini. Cari saja direktori yang namanya sesuai dengan PID yang Anda cari, di bawah sistem file semu yang dapat diakses di bawah
/proc
jalur. Jadi jika Anda memiliki program yang sedang berjalan, dengan ID 1199,cd
ke dalamnya:Lalu cari
fd
direktori di bawahnyafd
Direktori ini menyimpan objek file-deskriptor yang digunakan program Anda (0: stdin, 1: stdout, 2: stderr) dan hanyatail -f
yang Anda butuhkan - dalam hal ini, stdout):sumber
tail
karena dalam kasus saya, output dialihkan ke proses lain untuk input, tetapimore
menunjukkan kepada saya data saat ini.more
bekerja untuk saya. ubuntu 14.04 pada proses nodeSaya mencari hal yang persis sama dan menemukan bahwa Anda dapat melakukan:
Ini tidak persis seperti yang Anda butuhkan, tetapi cukup mendekati.
Saya mencoba output pengalihan, tetapi itu tidak berhasil untuk saya. Mungkin karena prosesnya menulis ke soket, saya tidak tahu.
sumber
Tentang pertanyaan ini, saya tahu itu mungkin untuk menangkap output, bahkan ketika Anda tidak meluncurkan perintah sceen sebelum meluncurkan prosesnya.
Meskipun saya tidak pernah mencobanya, saya menemukan artikel menarik yang menjelaskan cara menggunakan GDB (dan tanpa memulai ulang proses Anda).
mengarahkan-keluaran-dari-proses-yang-berjalan
Pada dasarnya:
Omong-omong, jika Anda menjalankan OS linux pada kotak i386, komentar berbicara tentang alat yang lebih baik untuk mengarahkan keluaran ke konsol baru: 'retty' . Jika demikian, pertimbangkan penggunaannya.
sumber
Bagi saya, ini berhasil:
Masuk sebagai pemilik proses (bahkan
root
ditolak izinnya)Ekor deskriptor file seperti yang disebutkan di banyak jawaban lainnya.
sumber
Saya ingin menonton dari jarak jauh proses peningkatan versi yum yang telah dijalankan secara lokal, jadi meskipun mungkin ada cara yang lebih efisien untuk melakukan ini, inilah yang saya lakukan:
Tentunya Anda ingin menggunakan vcsa2, vcsa3, dll., Tergantung terminal mana yang digunakan.
Selama jendela terminal saya memiliki lebar yang sama dengan terminal tempat perintah dijalankan, saya dapat melihat snapshot dari output mereka setiap dua detik. Perintah lain yang direkomendasikan di tempat lain tidak berfungsi dengan baik untuk situasi saya, tetapi perintah itu berhasil.
sumber