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.