Esclarecimento para documentação do Bash na opção interna do disown -h

3

De acordo com a documentação:

To prevent the shell from sending the SIGHUP signal to a particular job, it should be removed from the jobs table with the disown builtin or marked to not receive SIGHUP using disown -h.

link

Anote o OR na citação.

Posso confirmar isso simplesmente usando disown sem -h e registrando novamente que o processo não saiu:

#!/bin/bash

( sleep 10s; echo 1 > b ) &
disown

Parece que a opção -h não é necessária? Se funciona sem então qual é o seu propósito?

    
por Zhro 01.07.2016 / 18:36

1 resposta

5

Sem -h , o trabalho é removido da tabela de tarefas ativas, com -h não é.

Tudo está no manual:

 disown [-ar] [-h] [jobspec ...]

       (...)
       If the -h option is given, each jobspec is not removed
       from the table, but is marked so that SIGHUP is not sent to the
       job  if  the shell  receives  a SIGHUP.

Para ver a diferença, execute jobs após rejeitar o trabalho com e sem -h .

    
por 01.07.2016 / 18:49