Bonjour à tous,
je suis entrain d'essayer de comprendre les mécanismes initialisation post-kernel.
Cependant je me heurte à un problème lors de l'arrêt machine.
En effet, après démarrage de mon init (pas sysvinit, un prog que j'ai bricolé) dont voici le source (juste après), j'envoie des appels systèmes pour l'arrêt machine.
Tout ce passe bien, j'ai "flushing ide devices: <mes>" puis juste après "System Halted".
Mais voila, en tout dernier, le message "Kernel panic: Attempted to kill init" apparait.
Je sais parfaitement à quoi correspond ce message et le pourquoi de sa venue; Mais ce que je n'arrive pas à m'expliquer ce même pourquoi, sachant que j'essaye de suivre les bonnes procédures d'arrêt machine.
Mais je me doute qu'il doit manquer un truc.
Si vous avez une idée, je suis tout ouïe :)
---
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/reboot.h>
#include <sys/mount.h>
int main(void)
{
printf("<>\n");
printf("Arret Machine...4\n");
printf("<==>\n");
kill(-1,SIGTERM);
printf("<==>\n");
kill(-1, SIGKILL);
printf("<==>\n");
if(mount("/dev/hda1", "/dev/hda1", 0, MS_MGC_VAL|MS_REMOUNT|MS_RDONLY, 0)==-1)
{
printf("error remounting \"%s\" readonly\n", "/dev/hda1");
}
printf("<==>\n");
if(umount2("/dev/hda1", MNT_FORCE) == -1)
{
printf("Demontage erroné\n");
}
sync();
printf("<==>\n");
reboot(RB_HALT_SYSTEM);
return 1;
}
---
Compilation
# gcc -Wall -static ./init01.c -o ./init01
# strip ./init01
---
Merci par avance :)
# Re: Processus Init et
Posté par Prae . Évalué à 1.
--
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/reboot.h>
#include <sys/mount.h>
int main(void)
{
printf(" Bienvenue dans notre premier Init >\n");
printf("Arret Machine...4\n");
printf("== Envoi du signal de terminaison ==>\n");
kill(-1,SIGTERM);
printf("== Envoi du signal de tuerie ==>\n");
kill(-1, SIGKILL);
printf("== Montage en lecteur seule ==>\n");
if(mount("/dev/hda1", "/dev/hda1", 0, MS_MGC_VAL|MS_REMOUNT|MS_RDONLY, 0)==-1)
{
printf("error remounting \"%s\" readonly\n", "/dev/hda1");
}
printf("== Demontage - de force - de la partition root ==>\n");
if(umount2("/dev/hda1", MNT_FORCE) == -1)
{
printf("Demontage erroné\n");
}
sync();
printf("== Reboot Code ==>\n");
reboot(RB_HALT_SYSTEM);
return 1;
}
---
voila :)
# Re: Processus Init et "Kernel panic: Attempted to kill init"
Posté par fanche . Évalué à 1.
je n'arrive pas à utiliser ma distribution (redhat 9.0)une fois installée. J'ai un kernel panic: attempted to kill init.
En bootant avec ma disquette de boot, j'obtiens le même message. J'ai fais cette install en débranchant ts mes perip USB.
A quoi correspond ce message d'erreur et comment faire pour le resoudre.
mon système est:
carte mère : abit at7max2
video: geforce ti 4200 ti 128
dur: ibm 80
ecran: iiyama vision master pro 452
si quelqu'un peut m'aider.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.