Package: initscripts Version: 2.86.ds1-38+etchnhalf.1 Severity: normal
Note: assigning this report to initscripts, but it's about the source package. Hope it's ok, otherwise feel free to clone this bug against the sysvinit binary package. For a long explanation, please see Joey Hess' mail in #510582[1]. In short: - initscripts treats /etc/nologin as a symlink to /var/lib/initscripts/nologin. The link is created by postinst (if not existent - doesn't touch it if it's a regular file). The init scripts only modify /var/lib/initscripts/nologin during boot/shutdown. - shutdown(8) treats /etc/nologin as a regular file and unlink() it if cancelled or before executing init. As a result, after the first reboot /etc/nologin doesn't exist anymore (either as a file or as a symlink) and the nologin feature during boot is gone. The nologin feature on shutdown works because of shutdown(8), but only in the last 5 min before init invocation. Digging in changelogs and old bug reports, and googling around a bit, I couldn't understand the rationale beyond /etc/nologin being a symlink and the real file being out of the root fs (as noted in a changelog entry), so in the following I'm guessing a lot. Please clarify on this matter, thank you. Some suggestions I can think of: 1. For the nologin feature to work also during the init phase of halt/reboot, shutdown(8) should only unlink it if cancelled (and *not* before invoking init). The nologin file should be removed by a late script during shutdown or an early script during boot if DELAYLOGIN=no (this way you can also address the fastdown case, when nologin isn't unlinked). 2. shutdown(8) could use /var/lib/initscripts/nologin or follow /etc/nologin if it's a symlink when unlinking (please note that it follows it - if still exists - when fopen-ing for writing). However, /var/lib/initscripts/nologin could be on a separate fs (possibly not mounted). I assume shutdown(8) should only operate on root fs. 3. As 2. above, but put the real file on root filesystem (reintroducing /etc/nologin.boot?). 4. Consistently treat /etc/nologin as a regular file. 5. If, for some reason, initscripts and shutdown(8) should treat /etc/nologin differently, put an early script that recreate the symlink. Thanks, Gian Piero. [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=510582 -- System Information: Debian Release: 4.0 APT prefers stable APT policy: (990, 'stable'), (500, 'testing') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/dash Kernel: Linux 2.6.24-king2 Locale: LANG=it_IT.UTF8, LC_CTYPE=it_IT.UTF8 (charmap=UTF-8) Versions of packages initscripts depends on: ii deb 2.17 Miscellaneous utilities specific t ii e2f 1.39+1.40-WIP-2006.11.14+dfsg-2etch1 ext2 file system utilities and lib ii lib 2.7-16 GNU C Library: Shared libraries ii lsb 3.1-23.2etch1 Linux Standard Base 3.1 init scrip ii mou 2.12r-19etch1 Tools for mounting and manipulatin ii sys 2.86.ds1-38+etchnhalf.1 System-V-like utilities Versions of packages initscripts recommends: ii psmisc 22.3-1 Utilities that use the proc filesy -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org