diff options
| -rw-r--r-- | debian/changelog | 2 | ||||
| -rwxr-xr-x | internet-kiosk-management/sbin/ik_create | 17 | ||||
| -rwxr-xr-x | internet-kiosk-management/sbin/ik_shell | 26 | ||||
| -rwxr-xr-x | internet-kiosk-management/sbin/ik_upgrade | 26 |
4 files changed, 49 insertions, 22 deletions
diff --git a/debian/changelog b/debian/changelog index 9fba4f4..e643b60 100644 --- a/debian/changelog +++ b/debian/changelog @@ -26,6 +26,8 @@ internet-kiosk (0.0.2-0~edu1) UNRELEASED; urgency=low - Make sure xrandr is available inside chroot, recommend an SSH server for remote maintenance. - Make mounting and unmounting in chroot more robust. + - Provide start-stop-daemon wrapper, allows machines to boot while + system is in maintenance mode. -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Tue, 21 Aug 2012 18:14:02 +0200 diff --git a/internet-kiosk-management/sbin/ik_create b/internet-kiosk-management/sbin/ik_create index 6649a1b..4ceeeaf 100755 --- a/internet-kiosk-management/sbin/ik_create +++ b/internet-kiosk-management/sbin/ik_create @@ -115,11 +115,19 @@ mkdir -p /etc/network ln -sf /dev/shm /etc/network/run # disable service restarts -test -e /sbin/start-stop-daemon.keep || mv /sbin/start-stop-daemon /sbin/start-stop-daemon.keep -echo '#!/bin/sh' > /sbin/start-stop-daemon -echo 'exit 0' >> /sbin/start-stop-daemon +test -e /sbin/start-stop-daemon.real || mv /sbin/start-stop-daemon /sbin/start-stop-daemon.real +echo '#!/bin/sh' > /sbin/start-stop-daemon +echo '#' >> /sbin/start-stop-daemon +echo '# Internet Kiosk Wrapper to avoid running daemons while performing maintenance.' >> /sbin/start-stop-daemon +echo '#' >> /sbin/start-stop-daemon +echo >> /sbin/start-stop-daemon +echo 'if [ "\$X2GO_HANDLE_DAEMONS" != "false" ]; then' >> /sbin/start-stop-daemon +echo ' /sbin/start-stop-daemon.real "\$@"' >> /sbin/start-stop-daemon +echo 'fi' >> /sbin/start-stop-daemon chmod +x /sbin/start-stop-daemon +export X2GO_HANDLE_DAEMONS=false + # tweak mtab diversion [ \$? -eq 0 ] && rm -f /etc/mtab [ \$? -eq 0 ] && ln -sf /proc/mounts /etc/mtab @@ -164,9 +172,6 @@ chmod +x /sbin/start-stop-daemon [ \$? -eq 0 ] && test -e /etc/modprobe.d/i915-kms.conf && sed -s 's/modeset=1/modeset=0/' -i /etc/modprobe.d/i915-kms.conf [ \$? -eq 0 ] && test -e /etc/modprobe.d/radeon-kms.conf && sed -s 's/modeset=1/modeset=0/' -i /etc/modprobe.d/radeon-kms.conf -# restore start-stop-daemon -[ \$(stat --format '%s' /sbin/start-stop-daemon) -lt 200 ] && mv /sbin/start-stop-daemon.keep /sbin/start-stop-daemon - EOF chmod u+x $IK_CHROOT/ik_dte_install.sh diff --git a/internet-kiosk-management/sbin/ik_shell b/internet-kiosk-management/sbin/ik_shell index 49038ec..6485193 100755 --- a/internet-kiosk-management/sbin/ik_shell +++ b/internet-kiosk-management/sbin/ik_shell @@ -64,16 +64,26 @@ echo echo 'Note: Service restarts have been disabled in the Internet Kiosk Terminal's chroot.' echo -# disable service restarts -test -e /sbin/start-stop-daemon.keep || mv /sbin/start-stop-daemon /sbin/start-stop-daemon.keep -echo '#!/bin/sh' > /sbin/start-stop-daemon -echo 'exit 0' >> /sbin/start-stop-daemon -chmod +x /sbin/start-stop-daemon +# migrate start-stop-daemon to wrapper & variable based start-stop-daemon execution +if [ \$(stat --format '%s' /sbin/start-stop-daemon) -gt 200 ]; then + cp /sbin/start-stop-daemon /sbin/start-stop-daemon.real + echo '#!/bin/sh' > /sbin/start-stop-daemon + echo '#' >> /sbin/start-stop-daemon + echo '# Internet Kiosk Wrapper to avoid running daemons while performing maintenance.' >> /sbin/start-stop-daemon + echo '#' >> /sbin/start-stop-daemon + echo >> /sbin/start-stop-daemon + echo 'if [ "\$IK_HANDLE_DAEMONS" != "false" ]; then' >> /sbin/start-stop-daemon + echo ' /sbin/start-stop-daemon.real "\$@"' >> /sbin/start-stop-daemon + echo 'fi' >> /sbin/start-stop-daemon + chmod a+x /sbin/start-stop-daemon +fi -/bin/$IK_SHELL +# make sure the /etc/hostname file is not presented in the chroot +[ -e /etc/hostname ] && rm -f /etc/hostname -# restore start-stop-daemon -[ \$(stat --format '%s' /sbin/start-stop-daemon) -lt 200 ] && mv /sbin/start-stop-daemon.keep /sbin/start-stop-daemon +export IK_HANDLE_DAEMONS=false + +/bin/$IK_SHELL echo echo "Internet Kiosk Terminal Shell has exited." diff --git a/internet-kiosk-management/sbin/ik_upgrade b/internet-kiosk-management/sbin/ik_upgrade index afa1d22..ded72f9 100755 --- a/internet-kiosk-management/sbin/ik_upgrade +++ b/internet-kiosk-management/sbin/ik_upgrade @@ -52,11 +52,24 @@ export http_proxy=$IK_HTTP_PROXY export https_proxy=$IK_HTTPS_PROXY export ftp_proxy=$IK_FTP_PROXY -# disable service restarts -test -e /sbin/start-stop-daemon.keep || mv /sbin/start-stop-daemon /sbin/start-stop-daemon.keep -echo '#!/bin/sh' > /sbin/start-stop-daemon -echo 'exit 0' >> /sbin/start-stop-daemon -chmod +x /sbin/start-stop-daemon +# migrate start-stop-daemon to wrapper & variable based start-stop-daemon execution +if [ \$(stat --format '%s' /sbin/start-stop-daemon) -gt 200 ]; then + cp /sbin/start-stop-daemon /sbin/start-stop-daemon.real + echo '#!/bin/sh' > /sbin/start-stop-daemon + echo '#' >> /sbin/start-stop-daemon + echo '# Internet Kiosk Wrapper to avoid running daemons while performing maintenance.' >> /sbin/start-stop-daemon + echo '#' >> /sbin/start-stop-daemon + echo >> /sbin/start-stop-daemon + echo 'if [ "\$IK_HANDLE_DAEMONS" != "false" ]; then' >> /sbin/start-stop-daemon + echo ' /sbin/start-stop-daemon.real "\$@"' >> /sbin/start-stop-daemon + echo 'fi' >> /sbin/start-stop-daemon + chmod a+x /sbin/start-stop-daemon +fi + +# make sure the /etc/hostname file is not presented in the chroot +[ -e /etc/hostname ] && rm -f /etc/hostname + +export IK_HANDLE_DAEMONS=false [ \$? -eq 0 ] && apt-get update [ \$? -eq 0 ] && apt-get upgrade @@ -70,9 +83,6 @@ for symlink in /vmlinuz /vmlinuz.old /initrd.img /initrd.img.old; do fi done -# restore start-stop-daemon -[ \$(stat --format '%s' /sbin/start-stop-daemon) -lt 200 ] && mv /sbin/start-stop-daemon.keep /sbin/start-stop-daemon - echo echo "Internet Kiosk Diskless Terminal upgrade has finished." echo |
