Mengintip stdin dan stdout proses yang sedang berjalan

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.

Resita has written 705 articles