Existe uma maneira de verificar qual processo termina primeiro durante a reinicialização

1

Supondo que eu tenha 2 processos em execução. Existe alguma maneira de eu verificar qual processo termina primeiro durante a reinicialização / desligamento? A partir desse link , ele informa sobre o acréscimo de inicialização a um arquivo . No entanto, ainda não sei qual processo é finalizado primeiro entre meus dois processos. Existe alguma maneira de eu descobrir? Talvez um script bash ou um arquivo .conf. Estou aplicando isso ao CentOS, Redhat, Ubuntu, Solaris, HPUX.

    
por Mohd Fikrie 19.02.2014 / 06:31

1 resposta

1

Isso pode não ser preciso. Mas pelo que testei, podemos tentar brincar com o ps.

Escreva este arquivo.

#include<stdio.h>
#include<stdlib.h>
#include<signal.h>

FILE *file;
char test[1024] = "/home/fikrie/testprogram.txt";
const char* command = "ps -eo pid,comm,lstart,etime,time,args | grep -E '<process that your monitoring> | <second process your monitoring' > /home/fikrie/runtime.txt;

void signal_callback_handler(int signum)
{
   system(command);
   file = fopen(test, "w");
   if(file != NULL)
   {
     fprintf(file,"Caught signal %d\n",signum);
     fclose(file);
   }
   exit(signum);
}

int main()
{
   signal(SIGINT, signal_callback_handler);
   signal(SIGHUP, signal_callback_handler);

   while(1)
   {
     sleep(5);
   }
   return EXIT_SUCCESS;
}

Compile, então verifique se ele é executado com o init. Então verifique se começa. Mate o seu processo de teste. Em seguida, verifique no runtime.txt. Você verá quanto tempo o processo está sendo executado. Tome nota do tempo. Reinicie e verifique a hora novamente. Qualquer que seja o processo que tenha menos tempo no meio, esse processo é terminado primeiro.

Espero que isso ajude.

    
por 19.02.2014 / 11:51