Что означает успех и неудача в сценарии оболочки? - PullRequest
2 голосов
/ 29 апреля 2020

В этом скрипте инициализации вы можете видеть строки, которые говорят только success или failure. Что это за команды?

start)
echo -n "Starting Jenkins "
daemon --user "$JENKINS_USER" --pidfile "$JENKINS_PID_FILE" $JAVA_CMD $PARAMS > /dev/null
RETVAL=$?
if [ $RETVAL = 0 ]; then
    success
    echo > "$JENKINS_PID_FILE"  # just in case we fail to find it
    MY_SESSION_ID=`/bin/ps h -o sess -p $$`
    # get PID
    /bin/ps hww -u "$JENKINS_USER" -o sess,ppid,pid,cmd | \
    while read sess ppid pid cmd; do
        [ "$ppid" = 1 ] || continue
        # this test doesn't work because Jenkins sets a new Session ID
        # [ "$sess" = "$MY_SESSION_ID" ] || continue
        echo "$cmd" | grep $JENKINS_WAR > /dev/null
        [ $? = 0 ] || continue
        # found a PID
        echo $pid > "$JENKINS_PID_FILE"
    done
    touch $JENKINS_LOCKFILE
else
    failure
fi
echo
;;

1 Ответ

1 голос
/ 29 апреля 2020

О, я нашел ответ. Эти функции определены в /etc/init.d/functions.

# Log that something succeeded
success() {
    [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_success
    return 0
}

# Log that something failed
failure() {
    local rc=$?
    [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_failure
    [ -x /bin/plymouth ] && /bin/plymouth --details
    return $rc
}
...