Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Sep 2002 16:18:51 +0100 (BST)
From:      Andrew Gordon <arg-bsd@arg1.demon.co.uk>
To:        AlanE <alane@geeksrus.net>
Cc:        FreeBSD Stable List <freebsd-stable@freebsd.org>
Subject:   Re: Weird uptime(1) output
Message-ID:  <20020923110213.L2298-100000@server.arg.sj.co.uk>
In-Reply-To: <20020923033214.GB48084@wwweasel.geeksrus.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 22 Sep 2002, AlanE wrote:

> I have discussed this with the KDE maintainer of kdm, and he states that
> he *wants* the utmp entry to be :0 (or :0.0, or whatever the DISPLAY
> is). While I disagree with that, it's kinda hard to get that information
> (the tty) to the script that makes the utmp entry.


1) As someone else mentioned, this isn't a KDE problem.  It's existed
   for years with xdm and sessreg.  I use the patch below to avoid the
   error messages.

2) It isn't just "hard to get the tty name to the script", in the
   general case there _is_ no tty name (think remote X terminals).
   Only in the special case of an X server running locally is there
   a tty name you can quote, and even there it's not useful
   for the purposes of 'w', since the atime on the tty doesn't change
   to reflect keyboard activity when it's in use by an X server.

3) This patch doesn't fix the problem, it just avoids it.
   While it would be useful to have inactivity information about
   X terminals, I can't see any way to get at it.  Certainly, there
   is nothing on the local machine that holds the information
   (the user might be interacting with an application running on
   another machine), so 'w' would need to ask the X server, and
   I don't believe that a mechanism exists for it to do so.


--- usr.bin/w/w.c       12 Mar 2002 19:51:51 -0000      1.38.2.6
+++ usr.bin/w/w.c       23 Sep 2002 15:00:45 -0000
@@ -504,6 +504,12 @@
        static struct stat sb;
        char ttybuf[MAXPATHLEN];

+       if (line[0] == ':') {
+               /* Assume an X login via sessreg        */
+               time(&sb.st_atime);
+               sb.st_rdev = -1;
+               return (&sb);
+       }
        (void)snprintf(ttybuf, sizeof(ttybuf), "%s%.*s", _PATH_DEV, sz,
line);
        if (stat(ttybuf, &sb)) {
                warn("%s", ttybuf);



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




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