tree 80fe72fbe73b7239a0e8e27bf23524892a8a5bfc
parent 40ea66cd9d06677cb24e2293e065c101c0dfa64b
author Eric Andersen <andersen@codepoet.org> 1057393741 -0000
committer Eric Andersen <andersen@codepoet.org> 1057393741 -0000

Daniel writes:

I've found a problem with job control when the init process is restarted.

If the system boots for the first time, I get job control on a serial terminal -
no problems. However, when I restart init by issuing "init -q", then the shell
no longer has job control.

I traced this a problem in console_init in the file init.c. What was happening
after the restart is that the first compare

    if (ioctl(0, TIOCGSERIAL, &sr) == 0) {
	...
    } else if (ioctl(0, VT_GETSTATE, &vt) == 0) {
	...
    } else {
	... // assume /dev/console
    }

returned error and subsequently the code assumes /dev/console as the console,
which does not support job control.

Checking the errno after the first call showed that the system was complaining
about the file descriptor. This is probably because the previous init process
had closed all its file descriptors which the new init process had inherited.
