Enviar SIGTERM para um processo suspenso

0

Eu tenho 2 processos escritos em c, vou chamá-los de 'pai' e 'filho'. Pai cria filho e filho entra em um loop, onde faz algum código, em seguida, aumenta SIGSTOP. Se uma determinada condição for atingida, o pai precisa enviar o filho SIGTERM, caso contrário, SIGCONT.

Como posso enviar o SIGTERM enquanto ele está suspenso e obter exatamente os resultados desejados? Simplesmente enviando SIGCONT e depois SIGTERM tenho medo de que a criança chegue a SIGSTOP antes que SIGTERM seja enviado, e também acho que os dois sinais um após o outro irão interferir um com o outro.

obrigado.

    
por Eloo 29.03.2018 / 23:11

1 resposta

0

Se você tiver um processo em estado suspenso, ele não acionará nenhum sinal (diferente de SIGKILL ) até que continue. Um sinal pendente será enfileirado no processo.

Então, dependendo da sua situação, você precisará enviar:

  1. SIGTERM e, em seguida, SIGCONT
  2. SIGCONT

Claro que isso pode ser simplificado para

if (condition) { send SIGTERM }
send SIGCONT
    
por 29.03.2018 / 23:40

Tags