Assim, você parece querer que esses processos continuem sendo executados indefinidamente, ou seja, eles são processos de serviço - que foram iniciados dentro do ambiente chroot aninhado. Isso sugere que você está gerando um processo de serviço a partir do seu shell, ao invés do systemd.
Em geral, isso é ruim e você vai querer evitá-lo.
O CentOS 7 usa systemd
, sendo executado como PID 1 e gerenciando serviços do sistema. Obviamente, o PID 1 do sistema principal não roda dentro do seu chroot. Normalmente, quando você solicita o início de um processo de serviço do sistema, ele é retirado do PID 1 para fornecer um ambiente clean (personalizado de acordo com o arquivo .service
unit relevante). (Isso inclui scripts herdados do sysvinit. Eles são importados para arquivos .service
gerados automaticamente).
(Para ilustrar isto mais adiante, é tecnicamente possível executar um chroot
onde você monta o bind em um socket para se comunicar com o systemd, e usa comandos dentro do chroot para manipular os serviços do sistema host).
O problema não é apenas que sua abordagem perde os benefícios do systemd. Isso significa que você confunde o serviço systemd, se houver um para esse daemon. Por exemplo, o serviço pode mostrar como não iniciado ( service foo status
). Se mais tarde você tentar service foo restart
... systemd não saberá que existe um daemon para parar, e ele tentará iniciar uma instância do daemon segundo . Isso é um pouco confuso para depurar! Muitas vezes você vai ter um bom erro imediato sobre não ser capaz de iniciar seu servidor web porque já existe outro programa escutando na porta TCP 80 :), mas em outros casos você pode acabar com duas instâncias diferentes de um daemon que acham que deveriam ser o único, causando erros que demoram mais para perceber.