chkconfig não inicia o script do aplicativo no bootup

4

OS: Centos 5.7

Meu script de aplicativo é iniciado assim (/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

Status do Chkconfig

chkconfig --list | grep myapp

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

myapp aceita iniciar | parar | reiniciar | force-reload e todos eles são testados para funcionar

O myapp controller basicamente precisa iniciar alguns serviços de daemon para o aplicativo. Se eu executar service myapp start depois que o sistema for reinicializado, tudo funcionará bem. Mas por alguma razão, o chkconfig não está iniciando automaticamente. Alguém pode explicar o que eu posso estar fazendo errado?

ATUALIZAÇÃO:

Graças às informações do cjc, parece que meu controlador de aplicativo está carregando antes de alguns serviços requeridos, como o mysql.

Veja o resultado de uma pesquisa rápida:

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

Então, por que o pedido está definido para 50 quando no script eu configurei para 85 (iniciar) 60 (parar)? E como posso mudar isso?

Solução (como apontado por cjc nos comentários de sua resposta)

Sintaxe incorreta:

# chkconfig 2345 85 60

Corrigir para (dois pontos necessários após o chkconfig):

# chkconfig: 2345 85 60
    
por gAMBOOKa 24.12.2011 / 15:33

1 resposta

9

chkconfig essencialmente faz um link simbólico de, digamos, /etc/rc3.d/S85myapp para /etc/init.d/myapp. Verifique se esses links existem. Eu presumo que eles façam, já que o "chkconfig --list" está mostrando que eles estão "ligados".

Como você pode executar o /etc/init.d/myapp a partir do prompt, mas isso não ocorre durante a inicialização, meu palpite é que há um problema com o PATH, ou que um serviço que você precisa executar antes de executar myapp está realmente inicializando após myapp. Lembre-se que os scripts em /etc/rc3.d (ou seja qual for o seu nível de execução inicial) são executados em ordem de classificação. Verifique se myapp tem tudo que precisa para ser executado.

(Eu acho que há um problema PATH, no entanto)

    
por 24.12.2011 / 15:51