Alguma advertência para usar o bash rejeitado de um shell script como uma alternativa para a tela?

2

Eu tenho um processo que inicia e retorna para um arquivo de log. O script que inicia inicia em um GNU screen e depois segue o log com tail .

O processo começará imediatamente a gravar no arquivo de log e é útil vê-lo iniciar dessa maneira para detectar qualquer erro de configuração e, em seguida, retornar ao prompt com ctrl-c . Estou ciente de que isso apenas para o tail não encerra o processo que está registrando; isso é desejado.

O que eu quero fazer é iniciar um segundo processo de watchdog a partir do script de shell que serve para executar uma ação somente após o processo que está sendo executado no screen terminar de inicializar; isso ocorre somente APÓS toda a saída do log de inicialização.

Se eu executar um loop no meu script de inicialização e aguardar a inicialização do processo screen para que ele possa executar sua ação, perco a saída tail em tempo real. Se, em vez disso, eu tentar monitorar o log e gerar seu conteúdo enquanto espero no loop, o usuário não poderá ctrl-c sair do script antes, sem quebrar o loop que está aguardando a inicialização ser concluída.

Para suportar o watchdog e o tail -f do arquivo de log, posso iniciar uma tarefa e, em seguida, disown para garantir que um logout não a mate.

Esta é uma grande quantidade de informações para uma pergunta simples, mas eu queria incluir todos os detalhes relacionados ao meu caso de uso para fornecer esclarecimentos, caso haja uma alternativa melhor.

Além disso, eu poderia começar outro screen , mas não preciso interagir com ele e disown parece ser uma alternativa mais simples.

Também estou ciente de que preciso redirecionar a saída conforme necessário para impedir a saída para o shell pai.

Exemplo de código, testado e executado corretamente ao iniciar a partir de um script e, em seguida, efetuar logout e voltar em:

#!/bin/bash

( sleep 10s; echo 1 > b ) &
disown
    
por Zhro 01.07.2016 / 18:22

0 respostas