summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2012-09-27 15:20:50 +0100
committerSaul Wold <sgw@linux.intel.com>2012-09-28 01:14:02 -0700
commitae5e2bd994e3f60d3803ab56e6ed34d08fbc56f0 (patch)
treed28a987d0e18ccc26554c1b305f7ab2060f7c0ca
parent03ad4edace5db9c6e15ca776d06d20b7d4e42afc (diff)
downloadopenembedded-core-ae5e2bd994e3f60d3803ab56e6ed34d08fbc56f0.tar.gz
openembedded-core-ae5e2bd994e3f60d3803ab56e6ed34d08fbc56f0.tar.bz2
openembedded-core-ae5e2bd994e3f60d3803ab56e6ed34d08fbc56f0.zip
initrd: Spawn an emergency shell when something goes wrong
set -e allows to exit if a command fails. We install a trap and execute emergency_shell() when either the init script exits or when ctrl-c is typed (say if we are stuck somewhere and we want to debug it). Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
-rw-r--r--meta/recipes-core/initrdscripts/files/init-live.sh11
1 files changed, 11 insertions, 0 deletions
diff --git a/meta/recipes-core/initrdscripts/files/init-live.sh b/meta/recipes-core/initrdscripts/files/init-live.sh
index 3fba7dc3a1..fb7af31a13 100644
--- a/meta/recipes-core/initrdscripts/files/init-live.sh
+++ b/meta/recipes-core/initrdscripts/files/init-live.sh
@@ -2,6 +2,17 @@
PATH=/sbin:/bin:/usr/sbin:/usr/bin
+emergency_shell()
+{
+ echo "Bug in initramfs /init detected. Dropping to a shell. Good luck!"
+ echo
+ sh
+}
+trap "emergency_shell" 0 2
+
+# exit immediately if a command fails
+set -e
+
ROOT_MOUNT="/rootfs/"
ROOT_IMAGE="rootfs.img"
MOUNT="/bin/mount"