aboutsummaryrefslogtreecommitdiff
path: root/rc.shutdown
AgeCommit message (Collapse)AuthorFiles
2012-01-14mount: no longer pass '-n' to mountTom Gundersen1
This was needed when /etc/mtab was a regular file in order to avoid writing to it when /etc/ was mounted ro. However, now it is not needed. Passing -n should have been a noop, except for the NILFS mount helper. It will only start the daemon if the -n flag is not passed. This fixes FS#22523. Tested-by: Alexander Lam <lambchop468@gmail.com> Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-11-26hooks: add shutdown_preumount hookDevin J. Pohly1
This would be useful for filesystem monitoring software which needs to capture all changes to the filesystem - including the final writes to the random seed and wtmp. [tomegun: this hook is now the same as the postkillall hook, but that might change, so I agree with adding it for the sake of having sane semantics.] Signed-off-by: Devin J. Pohly <djpohly+arch@gmail.com> Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-11-06fix non-uniform indentationDave Reisner1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-11-04swapoff: umount swap-backed fs before switching off swapTom Gundersen1
Factor out umounting. Explicitly skip umounting API directories, rather than matching on fs type. This allows us to e.g. unmount all tmpfs but leaving /run and /dev/shm alone. v3: fixed some regressions in v2, made 'API filesystems' less general v2: new umount_all implementation based on proposal by Dave and input from Anthony. Also, ignore ramfs as it is not backed by swap. Cc: Dave Reisner <d@falconindy.com> Cc: C Anthony Risinger <anthony@xtfx.me> Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-10-29rc.shutdown: reorder a bitTom Gundersen1
The new ordering is now: 1) book-keeping 2) shutting down and killing processes 3) swapoff 4) unmounting and tearing down of block devices The reason to move 1) to the top is so it will not interfere with the killing of processes. The reason for not moving 3) to the top as well is that we want to minimize the amount of stuff that has to be moved from swap to ram. However, swapoff must happen before 4) as we don't know what is under the swap device/file. Added a TODO: unmount any devices backed by swap (tmpfs/ramfs) to make sure that their contents is thrown away rather than moved to ram. In principle we might get OOM on shutdown due to the current situation, but in most cases the only problem should be that shutdown is unecessarily slow. Thanks to Dan and Dave for prompting me to look into this. Cc: Dan McGee <dpmcgee@gmail.com> Cc: Dave Reisner <d@falconindy.com> Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-10-29udev: exit on shutdownTom Gundersen1
udev was receiving some events (due to e.g. swapoff) on shutdown that caused it to fork new processes. These then receivde TERM before they could finish, and complained on the console. In principle, I'm worried that, with the right ammonut of bad luck, we could fork off some process at exactly the wrong time which escapes the killall logic. This, by the way, highlights the frailty of the killall stuff. Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-10-29bits, bytes, who cares?Tom Gundersen1
Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-09-26hooks: move shutdown_poweroff before remounting / ro2011.09.2Tom Gundersen1
This will make sure the same hook is run regardless of whether you pivot to the shutdown ramfs or not. This is in order to run apcupsd --killpower as pointed out by Gerardo. Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-09-25shutdown: move disabling of monitoring/swapTom Gundersen1
We do this before killing all processes. There is no reason to do it later, and this might give some processes a bit more time to terminate properly. Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-09-25timezone: use function in shutdown like in sysinitTom Gundersen1
This uses the function introduced in 9b77b7d7b535c3c52c99a95374e1f800466c6414. Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-08-25shutdown: rely on init being installed by the initrdTom Gundersen1
init is now included in mkinitcpio's busybox, so we don't need to copy it. This might break compat with dracut, but it can be worked around very simply in case anyone wants to use dracut with Arch, so we don't care. Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-08-25sutdown: support both poweroff and rebootTom Gundersen1
Tell the /run/initramfs/shutdown what action to preform. Still no kexec support though. Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-08-03arch-tmpfiles: avoid subshell in creating empty filesDave Reisner1
install /dev/null as the new file instead of creating an empty file via a no-op process substitution. Signed-off-by: Dave Reisner <dreisner@archlinux.org> [tomegun: the commit also adds a similar fix to rc.shutdown] Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-07-26shutdown: pivot into a shutdown ramfsTom Gundersen1
Assume that a shutdown executable has been created in /run/initramfs by either dracut or mkinitramfs. Setup /run/initramfs to be a new root and pivot into it. Making sure that nothing is using our old root anymore. In particular this means we have to reexec init in the new root and make sure stdio is using the new /dev/console. This is inspired by Harald Hoyers work for systemd as well as Thomas Bächlers deinitramfs. Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-07-22rc.shutdown: Move 'run_hook shutdown_start' after "Initiating Shutdown..."Kurt J. Bosch1
Rationale Avoid printing any start hook status messages above the head line.
2011-07-10Refactor kill_everything, fsck_all and mount_all codeKurt J. Bosch1
Genaral scheme for hook positions is now: run_hook pre_foo if [[$WE_WANT_TO_DO_FOO]]]; then stat_busy "Doing foo" if [[$PRECONDITIONS_FOR_FOO_NOT_SATISFIED]]; then stat_fail else ... stat_done fi fi run hook post_foo rc.sysinit ----------- run_hook pre_foo [[$WE_WANT_TO_DO_FOO]] && status "Doing foo" foo run hook post_foo functions ------------ foo() { [[$PRECONDITIONS_FOR_FOO_NOT_SATISFIED]] && return 1 ... } Rationale Following this scheme as close as possible (without duplicating code and status messages) makes stuff more readable and uniform. Splitting kill_everything() into two new functions stop_all_daemons() and kill_all() also allows customization of either daemons stopping or process killing in an easy way. Suggested-by: Tom Gundersen <teg@jklm.no>
2011-06-28Move export PATH into functionsKurt J. Bosch1
Also sanitze the PATH for rc.single, rc.multi, rc.local and daemons.
2011-06-28Fix whitespaceKurt J. Bosch1
2011-06-24Get rid of simple if-constucts by using '&&'Kurt J. Bosch1
2011-06-24Some more cosmeticsKurt J. Bosch1
2011-06-24Simplify random seed file creationKurt J. Bosch1
2011-06-24Simplify unmounting filesystemsKurt J. Bosch1
This also keeps all tmpfs allways. Some might be in still in use because of a running splash daemon etc.
2011-06-24Some cosmeticsKurt J. Bosch1
2011-06-24Simplify timezone copyingKurt J. Bosch1
Error/stat_fail when $TIMEZONE is invalid instead of skipping silently.
2011-06-22Allow custom fsck on shutdown via hook (FS#18736)Kurt J. Bosch1
2011-06-19rc.shutdown: continuation of fe48fab2c2c35cDave Reisner1
Signed-off-by: Dave Reisner <d@falconindy.com>
2011-06-05add PATH, strip absolute path from binariesDave Reisner1
Since we're declaring a PATH anyways, we may as well use it. This gives us immunity against binaries moving around, as in the recent case of iproute2. A few other minor, associated, tweaks to go along with this: * any -x tests are modified to use 'type -P' to resolve the path before checking for execute permission * any pidof checks are stripped of paths as well.
2011-05-08Change stat_busy()/stat_done() -> status()Gerardo Exequiel Pozzi1
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-04-30rc.shutdown should recognize LVM upon LUKS optionIan-Xue Li1
This fixes FS#23889. Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-04-26fixup: umount tmpfs on shutdownTom Gundersen1
As suggested by seblu: - add comment to explain what we unmount and why, and - use /bin/grep rather than grep Also add some more redirects to /dev/null. Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-04-23umount tmpfs on shutdown if devtmpfs is usedGerardo Exequiel Pozzi1
This fixes FS#19783. [tomegun: some adjustments: - always umount ramfs as we never mount /dev as ramfs; and - don't umount /dev/pts as it might still be useful.] Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-04-04workaround: do not unset NIS on shutdownTom Gundersen1
If this bug is still present (after more than 4 years) it should be reported and fixed in syslog-ng. Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-04-04workaround: do not rmmod psmouseTom Gundersen1
If this bug is still present (after more than 4 years) it should be reported and fixed in the kernel. Dave points out that this was fixed by kernel commit a1cec06177386 (which is in 2.6.21 and was backported to at least 2.6.19.6). Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-03-30Merge branch 'hwclock-from-kurt' into arch-masterTom Gundersen1
Conflicts: rc.shutdown rc.sysinit
2011-03-30Make hwclock --adjust as well as --systohc optional (FS#13684)Kurt J. Bosch1
Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-03-29whitespace cleanupDave Reisner1
* adhere to a consistant vim modeline * use top-right/bottom-left braces for functions Signed-off-by: Dave Reisner <d@falconindy.com> Signed-off-by: Tom Gundersen <teg@jklm.no>
2011-02-27Improve encrypted filesystem detectionSeblu1
2010-12-06lvm: enable/disable monitoring of lvm2 groupsTom Gundersen1
Monitoring does not work when /var is mounted ro, so only enable monitoring when we know that /var is rw. Thanks to Thomas Bächler for pointing this out.
2010-12-06lvm: run vgchange in sysinit modeTom Gundersen1
This avoids problems with lack of rw filesystems. Solves: #FS18153.
2010-07-23Rewrite /etc/crypttab processing.Victor Lowther1
Split out reading /etc/crypttab and procssing the individual lines into their own helper functions, and bashify the resulting shorter code. Processing this file is still ugly, though. :(
2010-07-11Bashify rc.shutdownVictor Lowther1
Shorten domainname conditional execution. Use parameter expansion instead of dirname. Clean up entropy pool saving and system clock saving. Flatten LVM deactivation if block
2010-07-11Both rc.single and rc.shutdown use the same code to kill everything.Victor Lowther1
Simplify it, and move that shared code into functions. Parsing the output of ls is Bad, especially when globbing works just as well and does not get confused by odd characters in filenames. bash has arithemetic for loops. Use them instead of while loops for iterating over arrays.
2010-06-06Add nodevtmpfs at rc.shutdown when umountGerardo Exequiel Pozzi1
To avoid message about busy filesystem. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-05-03Apply 'encryption: Look for cryptsetup in various places' to rc.shutdown as well2010.05-2Thomas Bächler1
2010-01-24Move shutdown_prekillall hook after the stat_busy message (as per request by ↵2010.01-1Thomas Bächler1
Kurt Bosch)
2009-12-05Check that cryptsetup mapping exists before trying to remove itSolstice d'Hiver1
Signed-off-by: Roman Kyrylych <roman@archlinux.org>
2009-10-05Always shutdown daemons, regardless of runlevelAaron Griffin1
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-08-26Make the hook-system a bit more usableThomas Bächler1
This patch makes the hook names unique, prefixing them all with the script name (without the 'rc.') It also removes the explicit declarations of all elements of the array, bash assumes "" if they are uninitialized
2009-08-25Implement a hook-system that allows to add custom code to the initscripts at ↵Thomas Bächler1
certain places A function add_hook can be called from functions.d to register a hook function. The existing hooks are based on suggestions from Michael Towers (larch) and on the implementation of initscripts-extras-fbsplash which currently uses the strings passed to stat_busy and stat_done for this. More hooks can be added if requested. The implementation uses associative arrays and will thus only work with bash 4 or later
2009-08-22Allow skipping of all hardware clock adjustmentsDan McGee1
For virtualized machines, the hardware clock doesn't actually exist, so all hwclock calls fail and print error messages during system startup, shutdown, and the hourly adjtime cronjob. By explicitly looking for HARDWARECLOCK to be set to 'UTC' or 'localtime', all other values will result in hwclock calls being skipped (e.g. set the variable to 'none'). Signed-off-by: Dan McGee <dan@archlinux.org>