From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:subject:to:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=rHAawQmY9lDGPiwZkzwIWvuLuQew0/hsvyitqJbt/k0=; b=pXPXVfcY84cylHoa/TdbepnruaICs+Tc65hOAUbYUaKQjf/YZfP/45piTyw5Ke3NLH bE7yr/vHje2HNdXbveWWMnQGJQaKXjJXNbo/x6eS3Jf7n4il/K/uTarSJQ3xqGNIJ2Uy spE7PJW5tXYKos15/IwqGFn/FqnD9ofN51e+8Q+MRVsnTEerLPIyYbhLS1i20fctsk4A GLPyLduorWPNYU1fwBFtEf6dR/lhvo2TOFcjQvOe0PxZiS4MdVs1FLuaYg3ix0vWsNs6 HxAJ2LMKSbUfpnAUGX0hHOwlPFJUExXueRFC1a2iJics3ruZa9S/5nAQbARUtGwOxkNy 1Vog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:subject:to:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=rHAawQmY9lDGPiwZkzwIWvuLuQew0/hsvyitqJbt/k0=; b=CogeOrpQ0YDyK/tKsX+Y9VeOClqeZMf2tDePv2hzyCaA01HM1dNv9BAg83ubSF9g9W k8C12NCZ5Lkq9Q2X1WFiQ7n6eqAoIIZSG8PfZjPRxTcJhKiYrLehtYFPPf0fJQeafGgV cutOfCUf8N/3W0+34pIpZd0c0vxGhwlhKfNacQ6GcFIPmsmlIXbpK1PNzVxaapLL83Ls DOorQr5cB2WGDf9AjpIO8envHq86Whok0eSxBPjatUFpBt+ybcCB5Z67fHvdQjfNvEN/ 8yzoPumazgfoCKPetEf6c1fK7pnn4S8RmuhYeu6xybeqJmsJYDCMWdwxDDMlLciNm8GM I3Mg== X-Gm-Message-State: AOAM531n06As4MUMfqYRzizzFybFzPwyHX3H15GQhVMowhoxXubyyyhj owGd4iKl9VGHVIoxQ6yx1Vf7hLmOcQM= X-Google-Smtp-Source: ABdhPJxNF0a/SRuSqOKNw9l4FGS5HEcmHMus0Cgl4SS7sKACdgUJVZcqbg8jX+bU41l97LGiYAo+vw== X-Received: by 2002:ac2:4435:: with SMTP id w21mr9893044lfl.269.1632499065999; Fri, 24 Sep 2021 08:57:45 -0700 (PDT) From: Leonid Krivoshein To: make-initrd@lists.altlinux.org Message-ID: <7636585b-202d-95e0-eb0a-d320f69cc77a@gmail.com> Date: Fri, 24 Sep 2021 18:57:45 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset=windows-1251; format=flowed Content-Language: ru Content-Transfer-Encoding: 7bit Subject: [make-initrd] [PATCH v1 21/41] fork pipeline: bootchain sysvinit script now use external hooks X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Sep 2021 15:57:48 -0000 Archived-At: List-Archive: --- .../data/etc/rc.d/init.d/bootchain | 33 ++++++++++--------- .../data/lib/bootchain-prepare.d/300-waitdev | 12 +++++++ 2 files changed, 29 insertions(+), 16 deletions(-) create mode 100644 make-initrd/features/bootchain-waitdev/data/lib/bootchain-prepare.d/300-waitdev diff --git a/make-initrd/features/bootchain-core/data/etc/rc.d/init.d/bootchain b/make-initrd/features/bootchain-core/data/etc/rc.d/init.d/bootchain index 89d9de5..7bdb1cf 100755 --- a/make-initrd/features/bootchain-core/data/etc/rc.d/init.d/bootchain +++ b/make-initrd/features/bootchain-core/data/etc/rc.d/init.d/bootchain @@ -1,6 +1,6 @@ #!/bin/bash ### BEGIN INIT INFO -# Provides: pipeline +# Provides: bootchain # Required-Start: uevent udev # Should-Start: # Required-Stop: @@ -13,27 +13,28 @@ . /.initrd/initenv . /etc/init.d/template -NAME=pipelined +NAME=bootchained PIDFILE="/var/run/$NAME.pid" ARGS="--lockfile $LOCKFILE --pidfile $PIDFILE --name $NAME --displayname $NAME" -prepare() { - local dir i n - - dir=/.initrd/pipeline/waitdev - mkdir -p -- "$dir" - - i=0 - while [ "$i" -lt "${WAITDEV:-0}" ]; do - touch "$dir/$i" - i=$(($i + 1)) - done +use_hooks() +{ + local hook hdir="$1" + + if [ -d "$hdir" ]; then + # shellcheck disable=SC2012 + for hook in $(ls -1 -- "$hdir"/* |sort) _; do + [ -s "$hook" ] || + continue + . "$hook" + done + fi } start() { RETVAL=0 - if [ "${ROOT-}" = pipeline ]; then - prepare + if [ "${ROOT-}" = bootchain ] || [ "${ROOT-}" = pipeline ]; then + use_hooks /lib/bootchain-prepare.d start_daemon --background $ARGS "$NAME" RETVAL=$? fi @@ -43,7 +44,7 @@ start() { stop() { stop_daemon $ARGS "$NAME" RETVAL=$? - [ ! -f "$PIDFILE" ] || rm -f -- "$PIDFILE" + rm -f -- "$PIDFILE" return $RETVAL } diff --git a/make-initrd/features/bootchain-waitdev/data/lib/bootchain-prepare.d/300-waitdev b/make-initrd/features/bootchain-waitdev/data/lib/bootchain-prepare.d/300-waitdev new file mode 100644 index 0000000..f7315a3 --- /dev/null +++ b/make-initrd/features/bootchain-waitdev/data/lib/bootchain-prepare.d/300-waitdev @@ -0,0 +1,12 @@ +#!/bin/bash -efu + +dir=/.initrd/bootchain/waitdev +mkdir -p -- "$dir" + +[ -z "${WAITDEV_TIMEOUT-}" ] || + printf '%s\n' "$WAITDEV_TIMEOUT" >"$dir/TIMECNT" +i=0 +while [ "$i" -lt "${WAITDEV:-0}" ]; do + touch "$dir/$i" + i=$((1 + $i)) +done -- 2.21.0