Precisa de ajuda com o script de inicialização personalizado

2

Estou tentando configurar um script de inicialização para um processo no redhat linux:

#!/bin/sh
#
# Startup script for Conquest
#
# chkconfig: 345 85 15     - start or stop process definition within the boot process
# description: Conquest DICOM Server
# processname: conquest
# pidfile: /var/run/conquest.pid

# Source function library.      This creates the operating environment for the process to be started
. /etc/rc.d/init.d/functions

CONQ_DIR=/usr/local/conquest

case "$1" in
  start)
        echo -n "Starting Conquest DICOM server: "
        cd $CONQ_DIR && daemon --user mruser ./dgate -v                 - Starts only one process of a given name.
        echo
        touch /var/lock/subsys/conquest
        ;;
  stop)
        echo -n "Shutting down Conquest DICOM server: "
        killproc conquest
        echo
        rm -f /var/lock/subsys/conquest
        rm -f /var/run/conquest.pid      - Only if process generates this file
        ;;
  status)
        status conquest
        ;;
  restart)
        $0 stop
        $0 start
        ;;
  reload)
        echo -n "Reloading process-name: "
        killproc conquest -HUP
        echo
        ;;
  *)
        echo "Usage: $0 {start|stop|restart|reload|status}"
        exit 1
esac

exit 0

No entanto, o cd $CONQ_DIR está sendo ignorado, porque o script comete erros:

# ./conquest start
Starting Conquest DICOM server: -bash: ./dgate: No such file or directory
                                                           [FAILED]

Por algum motivo, tenho que executar o dgate como ./dgate. Não consigo especificar o caminho completo /usr/local/conquest/dgate

O software veio com um script de inicialização para um sistema Debian, então o script usa start-stop-daemon , com a opção --chdir para onde o dgate está, mas eu não encontrei uma maneira de fazer isso com a função do daemon do Redhat .

    
por churnd 07.04.2010 / 13:35

4 respostas

1

Por que não apenas:

daemon --user mruser ${CONQ_DIR}/dgate -v

?

Editar:

cd ${CONQ_DIR} && daemon --user mruser ./dgate -v &
    
por 07.04.2010 / 20:06
2

A antiga pergunta ainda é antiga: você pode solucionar esse tipo de problema com um set -x (xtrace) na parte superior do seu script. Além disso, considere set -e , portanto, o script é um erro anterior.

    
por 29.06.2010 / 13:42
0

O arquivo dgate tem permissão de execução?

Tente ecoar o diretório atual (echo 'pwd') antes de iniciar o dgate.

Atenciosamente, Lorenzo.

    
por 07.04.2010 / 13:57
0

export CONQ_DIR O subshell não sabe sobre o diretório.

por exemplo,

$ FOO=skhfkjsdh
$ cat foo.sh

    echo $FOO

$ sh foo.sh

$ export FOO=skhfkjsdh
$ sh foo.sh
skhfkjsdh
$
    
por 07.04.2010 / 15:48

Tags