Como executar mais de um programa através de um arquivo de serviço (/etc/init/*.conf)

0

Meu serviço, um executável chamado / opt / mcp / rpe, requer que um segundo executável também esteja em execução, chamado / opt / mcp / McpVp.

No meu arquivo conf: /etc/init/mcp.conf eu tenho:

description "Run MCP"

start on runlevel [2345]
stop on runlevel [016]

script
        # Start the RPE application
        /opt/mcp/rpe -d f -c /opt/mcp
        # Start the McpVp application
        /opt/mcp/McpVp &> /var/tmp/mcp.log
end script

Quando executo isso usando: sudo start mcp Vejo que o executável rpe é iniciado, mas o McpVp não. Eu também tento rodar ambos no modo background, isso também parece não funcionar, e o que é pior, quando eu tento parar o script, ele não consegue encontrar a "instância" - eu acho, porque está perdido em segundo plano.

Então, existe uma maneira de executar 2 (ou mais) processos, de modo que funcione com o comando start e stop? (por exemplo, sudo start mcp e sudo stop mcp )

Sei que existem outras maneiras de resolver esse problema, mas quero saber especificamente se posso fazer isso usando o arquivo .conf.

    
por code_fodder 12.08.2015 / 11:17

1 resposta

2

O que você faz com relativa facilidade é dividir a configuração em 2 configurações de um executável com um dependência entre eles. Então, quando você start mcp , inicia automaticamente o mcp2 também, e quando você stop mcp , ele também pára o mcp2. Aqui estão os arquivos:

#----/etc/init/mcp.conf
description "Run MCP"
start on runlevel [2345]
stop on runlevel [016]
# Start the RPE application
exec /opt/mcp/rpe -d f -c /opt/mcp

e

#----/etc/init/mcp2.conf
description "Run MCP 2"
start on starting mcp
stop on stopped mcp
# Start the McpVp application
exec /opt/mcp/McpVp &> /var/tmp/mcp.log
    
por meuh 12.08.2015 / 20:47