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

chkconfig не запускает скрипт приложения при загрузке

ОС: Centos 5.7

Сценарий моего приложения начинается так (/etc/init.d/myapp):

#!/bin/sh
# chkconfig 2345 85 60
# description: my application controller
# processname: myapp

NAME=MyApp
DIR=/opt/myapp/
RUN_AS=root

### BEGIN INIT INFO
# Provides:          myapp
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Starts the myapp application
### END INIT INFO

Статус Chkconfig

chkconfig --list | grep myapp

myapp            0:off   1:off   2:on    3:on    4:on    5:on    6:off

myapp принимает начало | стоп | перезапустить | принудительная перезагрузка, и все они проверены на работу

Контроллер myapp в основном должен запускать некоторые службы демонов для приложения. Если я сбегу service myapp start после перезагрузки системы все работает нормально. Но по какой-то причине chkconfig не запускает его автоматически. Может ли кто-нибудь объяснить, что я делаю не так?

ОБНОВИТЬ:

Благодаря информации cjc, похоже, что мой контроллер приложения загружается до некоторых необходимых служб, таких как mysql.

Вот результат быстрого поиска:

find /etc -name rc* -type d | xargs ls | grep myapp
K50myapp
K50myapp
S50myapp
S50myapp
S50myapp
S50myapp
K50myapp

Итак, почему порядок установлен на 50, когда в сценарии я установил 85 (начало) 60 (стоп)? И как я могу это изменить?

Решение (как указано cjc в комментариях к его ответу)

Неправильный синтаксис:

# chkconfig 2345 85 60

Правильно (после chkconfig необходимо двоеточие):

# chkconfig: 2345 85 60

chkconfig по существу создает символическую ссылку, скажем, из /etc/rc3.d/S85myapp на /etc/init.d/myapp. Убедитесь, что эти ссылки существуют. Я предполагаю, что это так, поскольку "chkconfig --list" показывает, что они включены.

Поскольку вы можете выполнить /etc/init.d/myapp из приглашения, но это не происходит во время запуска, я предполагаю, что есть проблема с PATH или что служба, которая вам нужна и запускается перед выполнением myapp, на самом деле инициализация после myapp. Помните, что сценарии в /etc/rc3.d (или на любом другом вашем начальном уровне выполнения) выполняются в порядке сортировки. Убедитесь, что в myapp есть все необходимое для работы.

(Я предполагаю, что есть проблема с PATH)