Jak podają anonimowe źródła, przepowiedziano, że Karol Czachorowski napisze:

> > U mnie dzieje się podobnie, chociaz ostatnio nie dostaje już
> > komunikatów 
> >   (respawning too fast) problemów z su też nie wykryłem. Natomiast 
> > długie oczekiwanie na logowanie po uprzednim wylogowaniu, zauważyłem
> > na wszystkich konsolach prócz tty1. (util-linux 2.12-7)
> U mnie jest zdecydowanie źle (ale problemów z su nie zauważyłem u
> siebie). 

Jak np. zabijesz X przez CTRL+ALT+BACKSPACE i zdążysz uruchomić 
su zanim ekran przełączy się na tekstowy. 

[...]
> Czyli jedynym rozwiązaniem jest przebudowanie pakietu bez tej poprawki?
> Czy jest może gdzieś paczka bez tego?

http://zeus.polsl.gliwice.pl/~jfk/tmp/util-linux_2.12-7.01_i386.deb

albo poprawka w załączeniu

Pozdrawiam

-- 
Jacek Kawa        **Everything happens for a reason,
            except possibly football.**  ['Thief of time']
--- login-utils/agetty.c.orig   2004-07-05 09:42:13.000000000 +0200
+++ login-utils/agetty.c        2004-07-05 09:45:26.000000000 +0200
@@ -29,9 +29,6 @@
 #include <getopt.h>
 #include <time.h>
 #include <sys/file.h>
-#include <sys/ioctl.h>
-#include <sys/vt.h>
-#include <linux/tty.h>
 #include "xgethostname.h"
 #include "xstrncpy.h"
 #include "nls.h"
@@ -634,74 +631,6 @@
        if ((st.st_mode & S_IFMT) != S_IFCHR)
            error(_("/dev/%s: not a character device"), tty);
 
-       /*
-        * Try to avoid opening a vt that is already open, as this will
-        * mean that the keyboard will be unusable.
-        *
-        * Unfortunately, all the kernel gives us to find out is an ioctl
-        * for the next available vt.  As the kernel doesn't open the vt for
-        * you with the ioctl, there is still a chance of both processes
-        * opening the same vt, but this check is far better than nothing at
-        * all.
-        *
-        * Similar to the check added to gdm.
-        */
-       if (strncmp(tty,"tty",3) == 0)
-       {
-           char *end;
-           int vtno;
-
-           vtno = strtol(tty+3,&end,10);
-           if (end != tty+3 && *end == '\0' && vtno > 1)
-           {
-               int fd;
-               int newvtno;
-               int fds[MAX_NR_CONSOLES];
-               int vt_cnt = 0;
-               int i;
-
-               for ( i = 0 ; i < MAX_NR_CONSOLES ; i++ )
-                   fds[i] = -1;
-
-               if ((fd = open("/dev/tty0", O_WRONLY, 0) ) < 0
-                   && errno != ENOENT)
-                   error(_("/dev/tty0: cannot open: %m"));
-
-               if (fd >= 0) do
-               {
-                   if ((ioctl(fd, VT_OPENQRY, &newvtno ) < 0))
-                       error(_("failed to query next available vt"));
-
-                   if (newvtno == -1)
-                       error(_("all vts are in use"));
-
-                   if (newvtno > vtno)
-                       error(_("/dev/%s: already in use"), tty);
-
-                   if (newvtno < vtno)
-                   {
-                       char vtname[TTY_NAME_MAX+3];
-
-                       sprintf( vtname, "tty%d", newvtno );
-
-                       if ((fds[vt_cnt++] =
-                           open(vtname, O_RDWR|O_NONBLOCK, 0)) < 0)
-                       {
-                           error(_("/dev/%s: cannot open: %m"), tty);
-                       }
-                   }
-               } while (newvtno != vtno);
-
-               close(fd);
-               for ( i = 0 ; i < MAX_NR_CONSOLES ; i++ )
-               {
-                   if (fds[i] == -1)
-                       break;
-                   close(fds[i]);
-               }
-           }
-       }
-
        /* Open the tty as standard input. */
 
        (void) close(0);

Odpowiedź listem elektroniczym