Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Oct 2000 15:10:03 +1000 (EST)
From:      andrew@ugh.net.au
To:        freebsd-hackers@freebsd.org
Cc:        iain@research.canon.com.au
Subject:   Logging users out
Message-ID:  <Pine.BSF.4.21.0010301452030.2043-100000@starbug.ugh.net.au>

next in thread | raw e-mail | index | archive | help
Hi,

What is the best way to go about logging a user out given their tty? I had
a couple of ideas:

(a) open their tty and set the baud rate to 0

(b) use tcgetpgrp to get the process group id of the foreground process
group on that tty, then with that info use libkvm to find the session
leader's pid and send it a SIGHUP

(c) use tcgetpgrp to get the process group id of the foreground process
group on that tty then using killpg to kill all the members of that
process group. I would need to do this in a loop to catch background
process groups that come to the foreground after a process group is
killed.

Whenever sending a signal I will have to verify the process exited,
possibly sending TERM and KILL until it does.

Problems:

(a) a doesn't seem to work...I'm guessing it only works on serial lines.

(b) b would be quite unportable I would guess (although thats not a
tragedy I would like to avoid it if it isn't too hard). Also if the
session leader dies is there any guarentee everything else in the session
goes as well? Or would I have to go through and kill every process group
in the session?

(c) c just seemed to be a bit of a hack (assuming you haven't just read
b). Out of all of them it seems the best so far however.

Does anyone have any suggestions or comments? Is there a "proper" way to
do this?

Thanks,

Andrew




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0010301452030.2043-100000>