Dear initers, Today I uploaded a new minor release of SysV init - version 2.90. This snapshot mostly fixes typos (in the source and Makefile), cleans up some old files and variables we were not using anymore, and adds some documentation. Basically, this is a house-keeping update.
Some key improvements include: 1. If shutdown is called followed by the computer being put to sleep, the shutdown command is now smart enough to figure out time has gone by and still shuts down the system at the originally designated time. Previously it would just pause its countdown timer while the computer was asleep. (ThisĀ feature works assuming the OS clock is accurate when it resumes from sleep. Otherwise we shutdown at designated time + sleep time when the clock is not accurate.) 2. The initctl pipe interface has been documented and now has its own man page (man 5 initctl). There is also a small write-up on initctl in the doc/ source directory. 3. Sending init the signal SIGUSR2 closes the initctl pipe, making sure init has no files open. This may be useful for making sure no unnecessary files are open on the system. SIGUSR1 re-opens the pipe in case we need it later. 4. The init program and its associated commands now compile cleanly with GCC 6 and 7. GCC 8 still gives some warnings, but nothing significant (ie GCC 8 complains it doesn't know whether a variable is a string or array). Clang also compiles without warnings. 5. Fixed a nasty bug where init might compile on Fedora 28, but not properly, causing the crypt() function to fail or give bad results. This was due to an undocumented change to Fedora's dependencies and a bug has been filed against the documentation. 6. The verification key for checking the tarball has been uploaded to pgp.mit.edu and pgp.com to make it easier/safer to verify the archive is signed and unaltered. There are a couple of features/fixes on my radar for the next release (2.91). Specifically: 1. Add a --version flag to init to make it easier to identify. Right now it's hard to know what we are running without relying on boot messages or the package manager. 2. Have init store its runlevel somewhere, like /var/run/runlevel, where reboot/halt/shutdown can find it. This side-steps an issue where alternative C libraries (like musl c) do not have utmp support. 3. Possibly make it possible to have init named something else. Like /sbin/sysvinit instead of /sbin/init. Not sure if this is useful, but there is an old bug report open for it. - Jesse