Я выполняю CentOS 5.5 и создал init сценарий. Запуск сценария содержит:
# 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, или просто весь путь сценария или просто имя файла сценария?
Часть остановки init сценария использует "killproc". Снова, какую команду я должен использовать для успешного уничтожения всех случаев сценария?
Если это похоже на соответствующую функцию на 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
как модели для Вашего сценария.