Linux: Como passar parâmetros para 'service foo start' (na linha de comando)?

9

Eu gostaria de passar um argumento para o serviço que estou começando. Por exemplo. iniciando um servidor em um modo de depuração. Como,

service jboss-as start debug

Ou algo assim. Mas service parece não suportar isso.

Existe alguma maneira? (Para o RHEL 6, se isso for importante.)

Observação: isso é semelhante a Ubuntu / Linux: como os parâmetros de inicialização são normalmente definidos para scripts de inicialização (sysvinit)? , mas não são os mesmos.

    
por Ondra Žižka 20.03.2013 / 06:13

3 respostas

9

No RHEL você tem a pasta / etc / sysconfig. Aqui você define os parâmetros de inicialização. E no seu script de inicialização você inclui algo como:

if [ -f /etc/sysconfig/$prog ] ; then
    . /etc/sysconfig/$prog
fi

Verifique os serviços existentes para exemplos.

Para desenvolvimento, você pode colocar seus parâmetros de inicialização em uma variável exportada (por exemplo, em .bashrc) que você pode substituir manualmente a qualquer momento que desejar.

EDITAR

Se você realmente quiser usar service , há algumas outras opções.

Seu script deve suportar pelo menos start e stop . Mas você também pode implementar um comando debug . E comece seu programa com:

service foo debug

Outra maneira será verificar o segundo argumento no seu script e você iniciará seu programa com:

service foo start debug

Modifique seu script de inicialização para algo como:

case "$1" in
  start)
        if [ "$2" = "debug" ]
        then
                start_debug
        else
                start
        fi
        ;;
    
por 20.03.2013 / 07:44
3

No Ubuntu, os parâmetros de inicialização são normalmente encontrados em:

/etc/default/<service_name>
    
por 20.03.2013 / 06:16
0

Eu gostaria de obter parâmetros adicionais de um arquivo específico do sistema depois de verificar sua existência, conforme sugerido acima.

Não gosto de adicionar opções adicionais à inicialização do serviço.

    
por 15.02.2017 / 12:50