* Allow switching to a new configuration without rebooting. However,

we don't stop/start/restart Upstart jobs yet.

svn path=/nixos/trunk/; revision=7297
This commit is contained in:
Eelco Dolstra 2006-12-10 00:04:58 +00:00
parent 9986bda673
commit 4ac288e724
2 changed files with 12 additions and 2 deletions

View file

@ -37,9 +37,10 @@ rec {
systemConfiguration = pkgs.stdenv.mkDerivation {
name = "system-configuration";
builder = ./system-configuration.sh;
inherit (pkgs) grub coreutils gnused gnugrep diffutils;
inherit (pkgs) grub coreutils gnused gnugrep diffutils findutils;
inherit grubDevice;
inherit bootStage2;
inherit activateConfiguration;
inherit grubMenuBuilder;
kernel = pkgs.kernel + "/vmlinuz";
initrd = initialRamdisk + "/initrd";

View file

@ -6,6 +6,7 @@ ln -s $kernel $out/kernel
ln -s $grub $out/grub
ln -s $bootStage2 $out/init
ln -s $initrd $out/initrd
ln -s $activateConfiguration $out/activate
echo "$extraKernelParams" > $out/kernel-params
cat > $out/menu.lst << GRUBEND
@ -18,7 +19,8 @@ ensureDir $out/bin
cat > $out/bin/switch-to-configuration <<EOF
#! $SHELL
set -e
export PATH=$coreutils/bin:$gnused/bin:$gnugrep/bin:$diffutils/bin
export PATH=$coreutils/bin:$gnused/bin:$gnugrep/bin:$diffutils/bin:$findutils/bin
if test -n "$grubDevice"; then
mkdir -m 0700 -p /boot/grub
$grubMenuBuilder $out
@ -26,6 +28,13 @@ if test -n "$grubDevice"; then
$grub/sbin/grub-install "$grubDevice" --no-floppy --recheck
fi
fi
if test "\$activateNow" = "1"; then
echo "Activating the configuration..."
$out/activate
kill -TERM 1 # make Upstart reload its events
fi
sync
EOF