Além de um comando kill ou de um comando kill (pid, signal) do sistema, o que pode fazer com que um SIGKILL ocorra para um processo?

2

Meu processo está misteriosamente recebendo um SIGKILL no AIX.

O rastreamento em execução no sistema indicou que o processo recebia um sinal enviado por meio da chamada de sistema kill (pid, SIGNAL). Eu verifiquei meu código e não tenho nenhuma chamada explícita que faça isso. Estou começando a pensar se é possível que uma chamada de sistema que fiz ou uma chamada para a Oracle possa resultar em um SIGKILL de volta. Como o processo fez a chamada, se o SIGKILL ocorre quando a chamada é feita, parece que o processo emitiu o SIGKILL para si mesmo.

O que pode causar o SIGKILL neste caso?

    
por James 28.01.2014 / 01:35

2 respostas

2

Se o espaço de paginação estiver sendo usado cada vez mais, ao atingir um limite especificado, o AIX começará a eliminar os processos gerados mais recentemente, o que acontece com bastante frequência. Esse limite pode ser especificado via vmo -o npskill veja, por ex. link :

The formula to determine the default value of npskill is as follows:
npskill = number_of_paging_space_pages/128
The npskill value must be greater than zero and less than the total number of > paging space pageson the system. This parameter can be changed by using the vmo -o command.

Você verá um ERRPT para isso, com o rótulo sendo PGSP_KILL e ficará assim:

C5C09FFA DATE P S SYSVMM            SOFTWARE PROGRAM ABNORMALLY TERMINATED

Se você olhar nos detalhes via errt -a, você também verá o PID, o nome do processo e a data.

    
por 07.09.2014 / 17:58
0

Execute-o através de um depurador (gdb?) e defina um ponto de interrupção para a chamada do sistema kill. Então espere que um backtrace possa dizer o que, em seu código, o acionou. (não tenho muita esperança de ver em qualquer biblioteca externa)

    
por 28.01.2014 / 02:09

Tags