how to determine if a process has access to tty ports
John F Haugh II
jfh at rpp386.cactus.org
Sat Jan 26 00:21:58 AEST 1991
In article <385 at bria> bria!mike (Michael Stefanik) writes:
>If you're worried about login processes, you could read /etc/utmp (but if
>this is a special device, I doubt that's the case); the slicker solution
>would be to read the namelist in /unix, and look through the proc table.
>A similar (but considerably slower) solution would be to popen() ps -t ttyxx
>and see if there is anything attached to it. If you're looking for any
>process that has simply done an open() on the port, though, that's another
>story.
There are other ways - for example, BSD seems to come with an "ofiles"
command, and USG seems to come with a "fuser" command.
For example -
% fuser /dev/tty03
/dev/tty03: 2793 2794 2809 48 2404
% ofiles /dev/tty03
/dev/tty03
User PID Type Command
jfh 2793 f sh
jfh 2794 f sh
jfh 2809 f vi
jfh 48 f ksh
jfh 2404 f rn
take your pick.
It is possible under System V to "disconnect" yourself from the controlling
terminal in such a way that ps(1) does not report you as having the port
open, or you could close all your open files, but still be associated with
the port. Here is an example of each.
% ofiles /dev/console
/dev/console
User PID Type Command
sysinfo 40 f lload
% ps -ft console
UID PID PPID C STIME TTY TIME COMMAND
root 31 1 0 19:30:02 con 0:02 /usr/local/bin/utmpd
% ps -fp 40
UID PID PPID C STIME TTY TIME COMMAND
root 40 1 8 19:30:14 ? 0:03 /etc/lload
--
John F. Haugh II UUCP: ...!cs.utexas.edu!rpp386!jfh
Ma Bell: (512) 832-8832 Domain: jfh at rpp386.cactus.org
"13 of 17 valedictorians in Boston High Schools last spring were immigrants
or children of immigrants" -- US News and World Report, May 15, 1990
More information about the Comp.unix.questions
mailing list