GNU/Linux >> Znalost Linux >  >> Linux

Rc_status Vždy vrací „failed“?

Jeden z našich vývojářů má službu, kterou je třeba spustit při bootování. Tento skript je třeba spustit:

/app/bt/preview/apache-tomcat-5.5.27/bin/startup.sh

Zde je spouštěcí skript, se kterým pracuji, s názvem /etc/init.d/bt :

#!/bin/sh
#
### BEGIN INIT INFO
# Provides:          BTServer
# Required-Start:    $local_fs $network $remote_fs
# Required-Stop:     $local_fs $network $remote_fs
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: BT Server
# Description:       BT Server
### END INIT INFO
#
#
# Run BT startup scripts as btu user
#
# Location of startup script
BT_SCR='/app/bt/preview/apache-tomcat-5.5.27/bin/startup.sh'

test -x $BT_SCR || exit 5

# Set up rc_status command
. /etc/rc.status
rc_reset

case "$1" in
start)
        echo -n "Starting BT Server"
        startproc -u btu $BT_SCR
        rc_status -v
        ;;
        *)
        echo "Usage: $0 { start }"
        exit 1

        ;;
esac
exit 0

Když spustím /etc/init.d/bt start z příkazového řádku se rc_status pokaždé nezdaří, i když se skript spustí v pořádku. Moc nerozumím tomu, jak se určuje rc_status; je mojí odpovědností nastavit hodnotu rc_status?

Vím, že budu muset přidat symbolický odkaz do /etc/rc.d/rc3.d, ale zatím se to snažím zprovoznit z příkazového řádku jako root.

Přijatá odpověď:

Neměli byste používat startproc pro spuštění skriptu shell-wrapper:startproc je určen ke spuštění procesu démona přímo. Zkontroluje, zda je proces spuštěn a podle toho nastaví návratový kód.

Ve vašem případě startup.sh po spuštění Tomcatu nepoběží – místo toho bude java proces s pytlem parametrů. Takže protože „startup.sh“ již neběží, startproc vrátí „failure“.


Linux
  1. Nechat Numlock vždy zapnutý?

  2. Jvm Daemon?

  3. Spustit program Gui při spuštění?

  1. Jak změřit dobu spouštění Firefoxu?

  2. malloc vrací paměť nebo virtuální adresový prostor

  3. Příkaz Linux apropos vždy nevrací nic vhodného

  1. Má ~ Vždy stejný $domov?

  2. Ujistěte se, že proces vždy běží?

  3. sudo -i vrací chybu