]> git.ozlabs.org Git - petitboot/blobdiff - utils/pb-console
utils/pb-console: Trap SIGTERM on boot
[petitboot] / utils / pb-console
index c6def47a74d010a1bfd7bd7111ca57717c5df0e5..5ba98cc4692564b435d1f7d271bf07355e838c06 100644 (file)
@@ -80,12 +80,24 @@ then
        then
                getty="$getty_arg"
        fi
        then
                getty="$getty_arg"
        fi
+
+       login_arg="-l$0"
+       for ttyarg in "$@"
+       do
+               # If the getty args include autologin don't override with -l
+               # and leave calling petitboot-nc to the user's init
+               if [ "$ttyarg" == "-a" ]
+               then
+                       login_arg=""
+               fi
+       done
+
        if [ "$detach" = 1 ]
        then
        if [ "$detach" = 1 ]
        then
-               $getty -l $0 "$@" &
+               setsid -c $getty $login_arg "$@" &
                exit
        else
                exit
        else
-               exec $getty -l $0 "$@"
+               exec $getty $login_arg "$@"
        fi
 fi
 
        fi
 fi
 
@@ -118,10 +130,16 @@ then
        verbose_opt=--verbose
 fi
 
        verbose_opt=--verbose
 fi
 
+# kernel messages may write over the ncurses ui - change log level to only
+# show particularly important messages
+dmesg -n 1
+
+trap '' SIGINT
+trap 'reset; echo "SIGTERM received, booting..."; sleep 2' SIGTERM
+
 while :
 do
        $ui $verbose_opt
        reset
 while :
 do
        $ui $verbose_opt
        reset
-       echo "Exiting petitboot. Type 'exit' to return."
        $shell
 done
        $shell
 done