Bonjour,
J'ai écrit un programme c qui compil très bien, seulement a l'exec il tourne un pti moment et puis je recois un SIGKILL
Comment peut on savoir d'où vient ce signal et pkoi?
Bonjour,
J'ai écrit un programme c qui compil très bien, seulement a l'exec il tourne un pti moment et puis je recois un SIGKILL
Comment peut on savoir d'où vient ce signal et pkoi?
Peut être, mais à l'évidence, ça ne suffit pas !Envoyé par chonos
Il est possible qu'il y ait un bug dans ton code.seulement a l'exec il tourne un pti moment et puis je recois un SIGKILL
Comment peut on savoir d'où vient ce signal et pkoi?
Essaye d'isoler le problème et, si tu ne trouves pas, de poster le code réduit au minimum compilable qui met le bug en évidence.
Bonjour
Il est également possible qu'il soit assassiné pour cause de dépassement de limites... Je m'explique, si tu est administrateur dans une universite et que tu n'a pas envie qu'il reigne sur le serveur un cahos absolu, tu fais en sorte que meme si tous les etudiants se mettent a faire des programmes du type
... ou encore ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int main(void) { while (1) { int * truc = malloc(1024); } return 0; }
... et bien le serveur ne tombe pas en rade. La solution c'est d'imposer des limites aux utilisateurs (nombre de processus, durée d'exécution quanditité de memoire utilisee, etc ...). Pour connaitre tes limite sur unixoide, il faut utiliser la command limits. Ce qu'il se passe pour l'utilisateur depends des limites que le programme tente de depasser. Generalement ce sont les appels systemes qui echouent (Si c'est mal gere, ca va vite vers un plantage du programme), ... ou un kill (temps d'exécution exessif).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 int main(void) { int i ; while (1) { i = fork(); if (!i) { fprintf("Je suis le fils!\n") ; } } return 0; }
Partager