Como executar programas regulares como daemons / services [duplicados]

1

Estou usando o Debian no meu servidor.

Acabei de instalar o MediaCore, que funciona bem.

Agora, quero que ele sempre comece e pergunte: como seria possível iniciá-lo como um serviço ou em segundo plano.

Eu sei como começar, mas o shell é inútil desde que o programa seja executado.

Então, como posso executá-lo silenciosamente enquanto executo serviços / daemons?

    
por Joern Akkermann 22.07.2011 / 15:08

2 respostas

3

Você tem algumas opções.

Primeiro, você pode iniciá-lo em screen e depois Ctrl-A fora da tela após o lançamento. Você pode mais tarde anexar novamente à tela com um screen -RR {screen number} ; você pode descobrir o número da tela com um screen -ls . (Se você tiver apenas uma tela ativa, um simples screen -RR irá reconectar).

Em segundo lugar, você pode iniciá-lo a partir do shell e colocar em segundo plano, adicionando um & após o comando. No entanto, você também deseja redirecionar stdout e stderr para os arquivos apropriados para que o shell não esteja intercalando a saída do comando com o shell. Eu acho que algo parecido com

$ command > command.stdout 2> command.stderr &

é o que você está procurando.

Eu nunca usei o MediaCore, então não sei o que é produzido. Se você quiser apenas capturar todas as saídas para um arquivo, seja stdout ou stderr, isso funcionará

$ command &> command.output &

No entanto, a longo prazo, já que você está usando o Debian, a coisa certa a fazer é adicionar um script de inicialização para ele (como @ user606723 mencionado). Existe um script skeleton em /etc/init.d que seria um bom ponto de partida.

    
por 22.07.2011 / 16:00
0

Você pode executar seu programa com 'screen' ou usar 'hohup' para desanexar do terminal.

nohup my_app 2>/dev/null 2>&1 & 

OR

screen -d -m my_app 
    
por 22.07.2011 / 15:38