Apakah mungkin untuk memasang terminal ke proses yang sudah berjalan dengan menggunakan PID-nya dengan cara yang mirip dengan menggunakan fgperintah untuk pekerjaan?
Apakah mungkin untuk memasang terminal ke proses yang sudah berjalan dengan menggunakan PID-nya dengan cara yang mirip dengan menggunakan fgperintah untuk pekerjaan?
Jawaban:
Anda bisa mendapatkan deskriptor file standar proses itu, misalnya stdout:
tail -f /proc/<pid>/fd/1
# ls -la /proc/24510/fd/1 lrwx------ 1 root root 64 Oct 31 08:34 /proc/24510/fd/1 -> socket:[444026]
Ada beberapa opsi di sini. Salah satunya adalah mengarahkan output perintah ke file, dan kemudian gunakan tailuntuk melihat baris baru yang ditambahkan ke file itu secara real time.
Pilihan lain adalah meluncurkan program Anda di dalamnya screen, yang merupakan semacam aplikasi terminal berbasis teks. Sesi layar dapat dilampirkan dan dilepaskan, tetapi secara nominal dimaksudkan hanya untuk digunakan oleh pengguna yang sama, jadi jika Anda ingin membaginya di antara pengguna.
Jika Anda mau, Anda bisa melacak prosesnya dan melihat apa yang dilakukannya strace:
strace -e trace=open -p 22254 -s 80 -o output.txt
-p PID: Lampirkan ke proses dengan ID proses PID dan mulailah melacak.-s SIZE: Tentukan ukuran string maksimum yang akan dicetak (standarnya adalah 32).-o filename: Tuliskan output jejak ke nama file file daripada ke layar (stderr).sudodengan strace untuk melampirkan ke suatu proses, dan menggunakannya -o ~/output.txtagar file tersebut tertinggal di folder rumah Anda.
Anda dapat menggunakan perintah yang diberikan di bawah ini untuk melampirkan proses yang berjalan di terminal lain:
Contoh:
screen -S PID
retty $(pgrep PID)
reptyr PID
sudo apt-get install rettytetapi ada beberapa batasan dengan retty. Lihatlah halaman manual yang disebutkan dalam jawaban.