← Commit list

2edf52643

Rob Landley
Rob Landley
2006-01-22
SUCCESS Duration: 12s

Subject

The whole "init is sometimes pid 3" thing is silly. Init is pid 1, anything else is a kernel bug. Both 2.4 and 2.6 should get this right now. This should fix the bug IraquiGeek is seeing (although killall still needs to be fixed.)

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Debian 14.2.0-19) 14.2.0

—

Build Log

(log yok)

Commit Diff GitHub →

init/halt.c+2 -22
@@ -4,20 +4,7 @@
*
* Copyright (C) 1999-2004 by Erik Andersen <[email protected]>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
#include <signal.h>
@@ -37,12 +24,5 @@ extern int halt_main(int argc, char **argv)
sleep(atoi(delay));
}
-#ifndef CONFIG_INIT
-#ifndef RB_HALT_SYSTEM
-#define RB_HALT_SYSTEM 0xcdef0123
-#endif
- return(bb_shutdown_system(RB_HALT_SYSTEM));
-#else
- return kill_init(SIGUSR1);
-#endif
+ return ENABLE_INIT ? kill(1,SIGUSR1) : bb_shutdown_system(RB_HALT_SYSTEM);
}
init/init.c+2 -15
@@ -6,20 +6,7 @@
* Copyright (C) 1999-2004 by Erik Andersen <[email protected]>
* Adjusted by so many folks, it's impossible to keep track.
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
/* Turn this on to disable all the dangerous
@@ -1033,7 +1020,7 @@ extern int init_main(int argc, char **argv)
int status;
if (argc > 1 && !strcmp(argv[1], "-q")) {
- return kill_init(SIGHUP);
+ return kill(1,SIGHUP);
}
#ifndef DEBUG_INIT
/* Expect to be invoked as init with PID=1 or be invoked as linuxrc */
init/init_shared.c+1 -30
@@ -4,20 +4,7 @@
*
* Copyright (C) 1999-2004 by Erik Andersen <[email protected]>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
#include <signal.h>
@@ -29,22 +16,6 @@
#include "busybox.h"
#include "init_shared.h"
-extern int kill_init(int sig)
-{
-#ifdef CONFIG_FEATURE_INITRD
- /* don't assume init's pid == 1 */
- long *pid = find_pid_by_name("init");
- if (!pid || *pid<=0) {
- pid = find_pid_by_name("linuxrc");
- if (!pid || *pid<=0)
- bb_error_msg_and_die("no process killed");
- }
- return(kill(*pid, sig));
-#else
- return(kill(1, sig));
-#endif
-}
-
#ifndef CONFIG_INIT
const char * const bb_shutdown_format = "\r%s\n";
extern int bb_shutdown_system(unsigned long magic)
init/poweroff.c+2 -30
@@ -4,20 +4,7 @@
*
* Copyright (C) 1999-2004 by Erik Andersen <[email protected]>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
#include <signal.h>
@@ -37,20 +24,5 @@ extern int poweroff_main(int argc, char **argv)
sleep(atoi(delay));
}
-#ifndef CONFIG_INIT
-#ifndef RB_POWER_OFF
-#define RB_POWER_OFF 0x4321fedc
-#endif
- return(bb_shutdown_system(RB_POWER_OFF));
-#else
- return kill_init(SIGUSR2);
-#endif
+ return ENABLE_INIT ? kill(1,SIGUSR2) : bb_shutdown_system(RB_POWER_OFF);
}
-
-/*
-Local Variables:
-c-file-style: "linux"
-c-basic-offset: 4
-tab-width: 4
-End:
-*/
init/reboot.c+2 -30
@@ -4,20 +4,7 @@
*
* Copyright (C) 1999-2004 by Erik Andersen <[email protected]>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
#include <signal.h>
@@ -37,20 +24,5 @@ extern int reboot_main(int argc, char **argv)
sleep(atoi(delay));
}
-#ifndef CONFIG_INIT
-#ifndef RB_AUTOBOOT
-#define RB_AUTOBOOT 0x01234567
-#endif
- return(bb_shutdown_system(RB_AUTOBOOT));
-#else
- return kill_init(SIGTERM);
-#endif
+ return ENABLE_INIT ? kill(1,SIGTERM) : bb_shutdown_system(RB_AUTOBOOT);
}
-
-/*
-Local Variables:
-c-file-style: "linux"
-c-basic-offset: 4
-tab-width: 4
-End:
-*/