Não, "o padrão" e "os valores herdados do pai da shell" não são os mesmos. No caso do execve, "o padrão" refere-se a SIG_DFL
, que faz com que a ação padrão seja especificada por man 7 signal
. No caso de bash, "os valores herdados do pai da shell" significam exatamente o que ela diz; se tal sinal foi ignorado ( SIG_IGN
) por seu pai, ele será ignorado em seu filho também.
Uma chave para entender o que está acontecendo aqui é a palavra "manipulada". Refere-se a uma função de manipulador de sinal personalizada, distinta de SIG_DFL
ou SIG_IGN
. Ele deve ser redefinido por execve, pois o novo processo não terá a função de manipulador de sinal usada pelo processo antigo.
Observe que as versões mais recentes da página de manual execve referem-se aos sinais "manipulados" como sinais "capturados", para estarem de acordo com a terminologia usada pelo restante do Linux. Isso ainda é distinto dos sinais padrão e ignorados.
Versão simples: se o pai do bash ou do bash tiver um sinal marcado como SIG_IGN
, será SIG_IGN
no novo filho também. Caso contrário, será SIG_DFL
no novo filho. Ele nunca pode ser um manipulador no novo filho, já que nenhum manipulador do bash ou seu pai existirá no novo filho.