1

Я использую CentOS 5.5 и создал сценарий инициализации. Начало скрипта содержит:

# Source function library.
if [ -f /etc/init.d/functions ]; then
        . /etc/init.d/functions
fi

Стартовый бит работает нормально, но у меня проблемы со статусом и остановкой:

status)
echo -n "Status of script: "
status "/bin/sh /path/to/script.sh"
RETVAL=$?
echo
;;

В PS AUX команда отображается как «/bin/sh /path/to/script.sh», и я вижу PID. Но когда я бегу:

./my_init_script status

Там написано, что скрипт не запущен. Должен ли я использовать бит /bin /sh, или просто полный путь к сценарию, или просто имя файла сценария?

Часть stop скрипта init использует killproc. Опять же, какую команду я должен использовать, чтобы успешно уничтожить все вхождения сценария?

1 ответ1

0

Если это похоже на соответствующую функцию в Ubuntu, вы должны пропустить часть "/bin/sh".

status "$DAEMON"

Возможно, вы захотите использовать что-то вроде:

killproc -p "$PIDFILE" "$DAEMON"

В верхней части вашего скрипта определите эти переменные:

DAEMON="/path/to/yourscriptname.sh"
PIDFILE="/var/run/yourscriptname/yourscriptname.pid"

И, конечно же, вам нужно убедиться, что /var/run/yourscriptname существует.

Используйте существующие скрипты в /etc/init.d качестве моделей для вашего скрипта.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .