В настоящее время я пытаюсь заставить работать скрипт, который должен определять некоторые функции 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 очень короткий и содержит очень мало по умолчанию, поэтому я не ожидал результат, который вы считаете возможным, если он не был изменен. Ваш следующий шаг отладки, вероятно, состоит в том, чтобы проверить этот файл на предмет чего-либо еще, из которого он может быть источником, или, в противном случае, вставить больше отладочных сообщений, чтобы точно определить, на какой строке он прерывается.