Mengintip stdin dan stdout proses yang sedang berjalan

Hi! Mwn’ers.

Misalnya di sistem ada sebuah proses yang sedang berjalan, PID-nya katakanlah 18601. Anda ingin mengintip kegiatan input dan output proses ini.

Untuk melihat file apa saja yang sedang terbuka, silakan lihat di /proc:

# cd /proc/18601/fd
# ls -l
total 4
dr-x------ 2 steven steven 0 2007-06-14 07:00 ./
dr-xr-xr-x 5 steven steven 0 2007-06-14 06:04 ../
lr-x------ 1 steven steven 64 2007-06-14 12:30 0 -> /dev/null
l-wx------ 1 steven steven 64 2007-06-14 12:30 1 -> pipe:[16309]
l-wx------ 1 steven steven 64 2007-06-14 12:30 2 -> pipe:[16309]
lr-x------ 1 steven steven 64 2007-06-14 12:30 255 -> /usr/bin/icedove*

Standard input, output, dan error defaultnya berada pada deskriptor file masing-masing nomor 0, 1, dan 2. Anda dapat menggunakan perintah seperti gdb atau strace untuk mengintip aktivitas read()/write() pada deskriptor-deskriptor ini.

# strace -p 18601 -e trace=read,write -e read=0 -e write=1,2

Anda tinggal memparse hasil output dari perintah strace.

Keterangan:

STDin adalah standard input atau input standar sebagai descriptor untuk memudahkan program membaca character stream dari konsol.

STDout adalah standard output atau output standar sebagai deskriptor bagi program untuk menulis output di character stream di console.

PID – Process ID. Setiap proses memiliki 5 digit angka. Angka ini bisa habis (kita kehabisan angka) dan berulang. Namun pada waktu yang lain, tidak akan ada PID yang lebih dari satu di dalam sistem.

Avatar

Resita has written 693 articles