From: Harald Hoyer Date: Mon, 11 Apr 2011 11:17:24 +0000 (+0200) Subject: loginit: create pid and kill loginit by pid X-Git-Tag: 011~107 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8f5d36896dee4f8913fccebca1ec2bdb25830fb8;p=platform%2Fupstream%2Fdracut.git loginit: create pid and kill loginit by pid --- diff --git a/modules.d/99base/init b/modules.d/99base/init index d12bdcf..6e074bc 100755 --- a/modules.d/99base/init +++ b/modules.d/99base/init @@ -10,32 +10,30 @@ wait_for_loginit() { - if getargbool 0 rd.debug -y rdinitdebug -y rdnetdebug; then - set +x - echo "DRACUT_LOG_END" - exec 0<>/dev/console 1<>/dev/console 2<>/dev/console + set +x + [ "$RD_DEBUG" = "yes" ] || return + [ -e /run/initramfs/initlog.pipe ] || return + echo "DRACUT_LOG_END" + exec 0<>/dev/console 1<>/dev/console 2<>/dev/console # wait for loginit - i=0 - while [ $i -lt 10 ]; do - if [ -e /run/initramfs/init.log.end ]; then - j=$(jobs) - [ -z "$j" ] && break - [ -z "${j##*Running*}" ] || break - fi - sleep 0.1 - i=$(($i+1)) - done - [ $i -eq 10 ] && kill %1 >/dev/null 2>&1 - - while pidof -x $(command -v loginit) >/dev/null 2>&1; do - for pid in $(pidof -x $(command -v loginit)); do - kill $HARD $pid >/dev/null 2>&1 - done - HARD="-9" - done - set -x + i=0 + while [ $i -lt 10 ]; do + if [ ! -e /run/initramfs/initlog.pipe ]; then + j=$(jobs) + [ -z "$j" ] && break + [ -z "${j##*Running*}" ] || break + fi + sleep 0.1 + i=$(($i+1)) + done + + if [ $i -eq 10 ]; then + kill %1 >/dev/null 2>&1 + kill $(while read line;do echo $line;done /run/initramfs/loginit.pid + [ -e /dev/kmsg ] && exec 5>/dev/kmsg || exec 5>/dev/null exec 6>/run/initramfs/init.log while read line; do if [ "$line" = "DRACUT_LOG_END" ]; then - > /run/initramfs/init.log.end + rm -f /run/initramfs/initlog.pipe exit 0 fi echo "<31>dracut: $line" >&5