script RC que se coloca em primeiro plano sob determinados critérios

1

Eu tenho um script simples que pede entrada do usuário ([y / N]) e, em seguida, atua sobre ele. Eu escrevi um daemon rc wrapper para que ele possa ser executado a partir da inicialização. Eu queria saber se é possível fazer o daemon / script pedir a entrada do usuário e, em seguida, o próprio plano até que seja hora de perguntar novamente, em que ponto ele se apresenta? Isso é possível? Isso é prático? Onde o controle fg / bg deve ser hospedado? no script rc.d ou no script principal?

    
por Luke Smith 05.08.2015 / 01:25

1 resposta

0

Não bloqueie o processo de inicialização por causa de um serviço, a menos que seja algum serviço absolutamente crítico sem o qual a máquina esteja inutilizável (por exemplo, digitando uma frase secreta para descriptografar o disco do sistema operacional).

Se algum serviço precisar de intervenção manual para iniciar (o que deve ser evitado sempre que possível, a menos que você goste de receber uma pager às 3h porque o serviço não voltou depois de uma reinicialização não programada devido a uma falha da UPS), não bloqueia a inicialização. Coloque o que precisa ser feito em segundo plano.

Para permitir que os usuários interajam com o serviço, execute-o dentro da Tela (ou tmux se você preferir o tmux) para criar um pseudoterminal em que o serviço lerá a entrada e gravará a saída em.

screen -d -m -S myservice /usr/local/sbin/myservice --interactive-start

Para se conectar ao terminal criado pela Tela, use

screen -r -d -S myservice

Você pode fazer isso de qualquer lugar: no console, no SSH, etc. Você precisa executar o comando screen como o mesmo usuário nas duas vezes. Para desanexar da sessão Screen e deixá-la rodando em segundo plano, pressione Ctrl + A D .

    
por 06.08.2015 / 02:04

Tags