| 1234567891011121314151617181920212223 |
- # Copyright (C) 2006-2015 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- failsafe_shell() {
- local consoles="$(cat /sys/class/tty/console/active)"
- [ -n "$consoles" ] || consoles=console
- for console in $consoles; do
- case "$console" in
- console|tty[0-9]*)
- term=${TERM:-linux}
- ;;
- *)
- term=vt102
- ;;
- esac
- # Running asynchronously via the shell's & would ignore SIGINT,
- # breaking ^C. Use start-stop-daemon instead.
- [ -c "/dev/$console" ] && start-stop-daemon -Sb -p /dev/null -- env -i ash -c "while true; do setsid -c env -i USER=root LOGNAME=root SHELL=/bin/ash TERM="$term" ash --login <\"/dev/$console\" >\"/dev/$console\" 2>\"/dev/$console\"; sleep 1; done"
- done
- }
- boot_hook_add failsafe failsafe_shell
|