Am 04.06.2012 23:17, schrieb Alan Cox: >> On all other ttys login works but bash dies because of of -EIO. >> After vhangup() the tty returns -EIO upon read()/write(). > > You can't re-open the tty because a process is holding on to it, not > closing it and not killable. Fedora shouldn't be holding these devices > open this way. The behaviour we have of refusing to reopen them why this > is the case is both a) what the spec seems to say b) good security. Hmm, there seems to be a bug in util-linux's login. login-utils/login.c::init_tty() does: ... /* Kill processes left on this tty */ tcsetattr(0, TCSAFLUSH, &ttt); signal(SIGHUP, SIG_IGN); /* so vhangup() wont kill us */ vhangup(); signal(SIGHUP, SIG_DFL); /* open stdin,stdout,stderr to the tty */ open_tty(cxt->tty_path); /* restore tty modes */ tcsetattr(0, TCSAFLUSH, &tt); ... By calling vhangup() it kills all other programs on the current tty. open_tty() opens the tty again but it's still open because stdin, stdout and stderr belongs to it. If I add: fclose(stdin); fclose(stdout); fclose(stderr); before the call to vhangup() login works like charm. :-) Karel, what do you think? Thanks, //richard