Contents of /trunk/mkinitrd-magellan/busybox/init/init_shared.c
Parent Directory | Revision Log
Revision 532 -
(show annotations)
(download)
Sat Sep 1 22:45:15 2007 UTC (17 years ago) by niro
File MIME type: text/plain
File size: 1364 byte(s)
Sat Sep 1 22:45:15 2007 UTC (17 years ago) by niro
File MIME type: text/plain
File size: 1364 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd
1 | /* vi: set sw=4 ts=4: */ |
2 | /* |
3 | * Stuff shared between init, reboot, halt, and poweroff |
4 | * |
5 | * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> |
6 | * |
7 | * Licensed under GPL version 2, see file LICENSE in this tarball for details. |
8 | */ |
9 | |
10 | #include "busybox.h" |
11 | #include <sys/reboot.h> |
12 | #include <sys/syslog.h> |
13 | #include "init_shared.h" |
14 | |
15 | const char * const init_sending_format = "Sending SIG%s to all processes."; |
16 | #ifndef CONFIG_INIT |
17 | const char * const bb_shutdown_format = "\r%s\n"; |
18 | int bb_shutdown_system(unsigned long magic) |
19 | { |
20 | int pri = LOG_KERN|LOG_NOTICE|LOG_FACMASK; |
21 | const char *message; |
22 | |
23 | /* Don't kill ourself */ |
24 | signal(SIGTERM,SIG_IGN); |
25 | signal(SIGHUP,SIG_IGN); |
26 | bb_setpgrp; |
27 | |
28 | /* Allow Ctrl-Alt-Del to reboot system. */ |
29 | #ifndef RB_ENABLE_CAD |
30 | #define RB_ENABLE_CAD 0x89abcdef |
31 | #endif |
32 | reboot(RB_ENABLE_CAD); |
33 | |
34 | openlog(applet_name, 0, pri); |
35 | |
36 | message = "\nThe system is going down NOW !!"; |
37 | syslog(pri, "%s", message); |
38 | printf(bb_shutdown_format, message); |
39 | |
40 | sync(); |
41 | |
42 | /* Send signals to every process _except_ pid 1 */ |
43 | message = "TERM"; |
44 | syslog(pri, init_sending_format, message); |
45 | printf(bb_shutdown_format, message); |
46 | |
47 | kill(-1, SIGTERM); |
48 | sleep(1); |
49 | sync(); |
50 | |
51 | message = "KILL"; |
52 | syslog(pri, init_sending_format, message); |
53 | printf(bb_shutdown_format, message); |
54 | |
55 | kill(-1, SIGKILL); |
56 | sleep(1); |
57 | |
58 | sync(); |
59 | |
60 | reboot(magic); |
61 | return 0; /* Shrug */ |
62 | } |
63 | #endif |