Назад | Перейти на главную страницу

Завершение работы сценария bash после определения функций lsb

В настоящее время я пытаюсь заставить работать скрипт, который должен определять некоторые функции LSB. Это происходит здесь:

echo "step 1"

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS

echo "step 2"

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions

echo "step 3"

Но сценарий прерывает выполнение после шага 2, я никогда не получаю результат «шаг 3». Этот скрипт является стартовым скриптом для затопленных. Раньше это работало, но я заметил, что мой потоп больше не работал, и проследил проблему до этой строки кода.

Кто-нибудь знает, что может вызвать это? Файл init-functions существует в указанном каталоге.

Я обнаружил, в чем проблема: у файла были неправильные разрешения, что не позволяло сценарию читать файл.

Вы можете увидеть прерывание во время поиска сценария оболочки, если что-то в этом сценарии оболочки использует exec или exit вместо возврата или просто достигает конца файла.

Судя по структуре файловой системы, я предполагаю, что вы работаете с производной RedHat, а в CentOS 6 и CentOS 7 файл / lib / lsb / init-functions очень короткий и содержит очень мало по умолчанию, поэтому я не ожидал результат, который вы считаете возможным, если он не был изменен. Ваш следующий шаг отладки, вероятно, состоит в том, чтобы проверить этот файл на предмет чего-либо еще, из которого он может быть источником, или, в противном случае, вставить больше отладочных сообщений, чтобы точно определить, на какой строке он прерывается.