/proc oddball

Spirilly (spirilis@mindmeld.dyn.ml.org)
Sun, 19 Apr 1998 15:38:54 -0400 (EDT)


Hi,
On kernel 2.1.96 (please correct me if this was fixed by 2.1.97) there
seemed to have been an odd property of the PROC filesystem that I don't
understand...
While using a program I wrote called "chkalive.c" (purpose is to be run during
login to attempt TCP connect on the user's machine at an arbitrary port, now
55555, for purposes of seeing if the user is alive or has crashed) I tested it
out, but I found a weird property of the /proc filesystem as will be illustrated
in my commands:

<spirilis>:spirilis% chkalive
chkalive started, pid 25550, user spirilis
<spirilis>:spirilis% cd /proc/25550
<spirilis>:25550% cd fd
<spirilis>:fd% ls -la
total 0
dr-x------ 1 spirilis root 0 Apr 19 15:32 ./
dr-xr-xr-x 3 spirilis root 0 Apr 19 15:32 ../
lrwx------ 1 spirilis root 64 Apr 19 15:32 0 -> /dev/null
lrwx------ 1 spirilis root 64 Apr 19 15:32 1 -> /dev/null
lrwx------ 1 spirilis root 64 Apr 19 15:32 2 -> /dev/null
lrwx------ 1 spirilis root 64 Apr 19 15:32 3 -> socket:[99226]
<spirilis>:fd% cd ..
<spirilis>:25550% ls
cmdline cwd@ exe@ maps| root@ statm
cpu environ fd/ mem stat status
<spirilis>:25550%
<spirilis>:25550% cat maps
(listing supressed)
<spirilis>:25550% cat statm
80 80 66 3 0 77 14
<spirilis>:25550% cat status
(listing supressed)
<spirilis>:25550% kill 25550
<spirilis>:25550% ls
cmdline cwd@ exe@ maps| root@ statm
cpu environ fd/ mem stat status
<spirilis>:25550% kill -9 25550
kill: kill 25550 failed: no such process
<spirilis>:25550% ls
cmdline cwd@ exe@ maps| root@ statm
cpu environ fd/ mem stat status
<spirilis>:25550%
<spirilis>:25550% cat maps
cat: maps: Invalid argument
<spirilis>:25550% cat stat
<spirilis>:25550% cd ../25550
<spirilis>:25550% pwd
/proc/25550
<spirilis>:25550% cd ..
<spirilis>:/proc% cd 25550
<spirilis>:25550% ls
cmdline cwd@ exe@ maps| root@ statm
cpu environ fd/ mem stat status
<spirilis>:25550% ps 25550
PID TTY STAT TIME COMMAND
No processes available.
<spirilis>:25550%

Notice that even though the process is dead, I can still cd to the
now-unexisting-process's /proc/(pid) directory.

-Spirilis

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu