jfh@rpp386.cactus.org (John F Haugh II) (12/20/90)
I wrote this after getting disgusted with having old entries
sitting around my utmp file, left over from pty login sessions.
Once a minute it makes a sweep of the utmp file and makes
sure all non-DEAD_PROCESS entries actually have processes
associated with them. It was easier than fixing init ...
---- utmpd.c ----
/*
* this code is in the public domain. do with it as you
* please. - jfh. 12/19/90
*/
#include <utmp.h>
#include <fcntl.h>
main ()
{
int fd;
struct utmp utmp;
while (1) {
if ((fd = open ("/etc/utmp", O_RDWR)) < 0)
exit (1);
while (read (fd, &utmp, sizeof utmp) == sizeof utmp) {
if (utmp.ut_type != DEAD_PROCESS &&
kill (utmp.ut_pid, 0) != 0) {
lseek (fd, - (long) sizeof utmp, 1);
utmp.ut_type = DEAD_PROCESS;
write (fd, &utmp, sizeof utmp);
}
}
close (fd);
sleep (60);
}
}
--
John F. Haugh II UUCP: ...!cs.utexas.edu!rpp386!jfh
Ma Bell: (512) 832-8832 Domain: jfh@rpp386.cactus.org
"While you are here, your wives and girlfriends are dating handsome American
movie and TV stars. Stars like Tom Selleck, Bruce Willis, and Bart Simpson."