Não execute daemons a partir de um shell interativo conectado a um terminal.
Configure os daemons para serem executados propriamente , gerenciados por qualquer supervisor do (s) daemon com o qual seu sistema venha, seja qualquer coisa de s6-supervise
para launchd
. Use a interface de gerenciamento para trazer os daemons para cima e para baixo.
Quando sua conexão SSH é perdida, o processo do servidor SSH fecha o lado mestre do pseudo-terminal que é aberto. Isso faz com que um SIGHUP
seja enviado para o processo de líder de sessão, o shell de nível superior e para todos os processos no grupo de processos de primeiro plano. Quando bash
recebe um SIGHUP
, ele envia SIGHUP
para todos os processos filhos aos quais ele não foi informado para disown
. Isso, claro, inclui o processo tomcat
que você executou desse shell interativo.
Os deemons não devem ter controle de TTY, e não devem pertencer a nenhum grupo de processos ou sessão que seja conhecido por qualquer TTY, para que os usuários não privilegiados possam enviar sinais aleatórios e possivelmente inesperados. Executá-los a partir do (s) supervisor (es) daemon do seu sistema irá assegurar que isto, e na verdade todos os outros aspectos do estado do processo do daemon, são todos apropriadamente definidos para um processo de daemon. Muitos supervisores de daemon também irão lidar automaticamente com o registro do daemon.
Execute o seu tomcat
daemon corretamente.
Leitura adicional
- Jonathan de Boyne Pollard (2001,2007). Erros a evitar ao projetar programas do programa Unix . Respostas frequentemente dadas.