Como criar um processo órfão sem terminar o shell pai?

2

Em um bash shell, para tornar o nohup mycommand & um processo órfão, fecho o shell bash após executar o comando. É possível fazer sem terminar o shell pai? Eu gostaria de saber se existem alguns comandos shell semelhantes às chamadas do sistema fork () e exit () para daemonização de um processo.

    
por Tim 02.03.2016 / 10:20

1 resposta

4

Para criar um processo órfão, o pai deve morrer. Se você não quer que seu shell morra, então o shell não deve ser o pai do órfão. A maneira mais simples de fazer isso é tornar o fork fork um processo filho que, por sua vez, bifurca o processo que se tornará órfão. Esse duplo fork é como os daemons são iniciados, como explicado na introdução do artigo da Wikipedia .

Em um shell, você já sabe como criar um processo filho: com & . Para ter um processo filho que seja uma bifurcação do mesmo shell e que ele, por sua vez, bifurque um processo de segundo plano, você só precisa fazer com que o analisador o entenda.

{ nohup mycommand & } &
    
por 03.03.2016 / 02:52