Apakah mungkin untuk memasang terminal ke proses yang sudah berjalan dengan menggunakan PID-nya dengan cara yang mirip dengan menggunakan fg
perintah untuk pekerjaan?
Apakah mungkin untuk memasang terminal ke proses yang sudah berjalan dengan menggunakan PID-nya dengan cara yang mirip dengan menggunakan fg
perintah 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 tail
untuk 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).sudo
dengan strace untuk melampirkan ke suatu proses, dan menggunakannya -o ~/output.txt
agar 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 retty
tetapi ada beberapa batasan dengan retty. Lihatlah halaman manual yang disebutkan dalam jawaban.