]> Zhao Yanbai Git Server - minix.git/commitdiff
*** empty log message ***
authorJorrit Herder <jnherder@minix3.org>
Mon, 13 Mar 2006 10:33:50 +0000 (10:33 +0000)
committerJorrit Herder <jnherder@minix3.org>
Mon, 13 Mar 2006 10:33:50 +0000 (10:33 +0000)
commands/reboot/halt.c

index 38d36a9eee15af1861dcf606e5de552e5332f284..456b5234c4e85cfe4da56ae347d501203509c83c 100755 (executable)
@@ -27,6 +27,7 @@ void usage _ARGS(( void ));
 int main _ARGS(( int argc, char *argv[] ));
 
 char *prog;
+char *reboot_code = "delay; boot";
 
 void
 usage()
@@ -59,18 +60,10 @@ char **argv;
     if (*opt == '-' && opt[1] == 0) break;     /* -- */
 
     while (*opt != 0) switch (*opt++) {
-      case 'h':
-       flag = RBT_HALT;
-       break;
-      case 'r':
-       flag = RBT_REBOOT;
-       break;
-      case 'R':
-       flag = RBT_RESET;
-       break;
-      case 'f':
-       fast = 1;
-       break;
+      case 'h': flag = RBT_HALT;       break;
+      case 'r': flag = RBT_REBOOT;     break;
+      case 'R': flag = RBT_RESET;      break;
+      case 'f': fast = 1; break;
       case 'x':
        flag = RBT_MONITOR;
        if (*opt == 0) {
@@ -92,6 +85,11 @@ char **argv;
     exit(1);
   }
 
+  if (flag == RBT_REBOOT) {
+       flag = RBT_MONITOR;             /* set monitor code for reboot */
+       monitor_code = reboot_code;
+  }
+
   if (stat("/usr/bin", &dummy) < 0) {
     /* It seems that /usr isn't present, let's assume "-f." */
     fast = 1;
@@ -125,7 +123,7 @@ char **argv;
   /* Give everybody a chance to die peacefully. */
   printf("Sending SIGTERM to all processes ...\n");
   kill(-1, SIGTERM);
-  sleep(2);
+  sleep(1);
 
   sync();