svn commit: trunk/busybox: include miscutils

vapier at busybox.net vapier at busybox.net
Mon Jun 26 21:31:21 UTC 2006


Author: vapier
Date: 2006-06-26 14:31:17 -0700 (Mon, 26 Jun 2006)
New Revision: 15520

Log:
fix watchdog on no-mmu systems by adding -F option for rexec

Modified:
   trunk/busybox/include/usage.h
   trunk/busybox/miscutils/watchdog.c


Changeset:
Modified: trunk/busybox/include/usage.h
===================================================================
--- trunk/busybox/include/usage.h	2006-06-26 20:42:36 UTC (rev 15519)
+++ trunk/busybox/include/usage.h	2006-06-26 21:31:17 UTC (rev 15520)
@@ -3372,11 +3372,12 @@
 	"Mon Dec 17 10:31:44 GMT 2000"
 
 #define watchdog_trivial_usage \
-	"[-t <seconds>] DEV"
+	"[-t <seconds>] [-F] DEV"
 #define watchdog_full_usage \
 	"Periodically write to watchdog device DEV.\n" \
 	"Options:\n" \
-	"\t-t\tTimer period in seconds - default is 30"
+	"\t-t\tTimer period in seconds - default is 30\n" \
+	"\t-F\tStay in the foreground and don't fork"
 
 #define wc_trivial_usage \
 	"[OPTION]... [FILE]..."

Modified: trunk/busybox/miscutils/watchdog.c
===================================================================
--- trunk/busybox/miscutils/watchdog.c	2006-06-26 20:42:36 UTC (rev 15519)
+++ trunk/busybox/miscutils/watchdog.c	2006-06-26 21:31:17 UTC (rev 15520)
@@ -15,6 +15,9 @@
 #include <stdlib.h>
 #include <signal.h>
 
+#define OPT_FOREGROUND 0x01
+#define OPT_TIMER      0x02
+
 /* Watchdog file descriptor */
 static int fd;
 
@@ -27,10 +30,13 @@
 
 int watchdog_main(int argc, char **argv)
 {
+	unsigned long opts;
 	unsigned long timer_duration = 30; /* Userspace timer duration, in seconds */
 	char *t_arg;
 
-	if (bb_getopt_ulflags(argc, argv, "t:", &t_arg))
+	opts = bb_getopt_ulflags(argc, argv, "Ft:", &t_arg);
+
+	if (opts & OPT_TIMER)
 		timer_duration = bb_xgetlarg(t_arg, 10, 0, INT_MAX);
 
 	/* We're only interested in the watchdog device .. */
@@ -38,7 +44,8 @@
 		bb_show_usage();
 
 #ifdef BB_NOMMU
-	vfork_daemon(0, 1);
+	if (!(opts & OPT_FOREGROUND))
+		vfork_daemon_rexec(0, 1, argc, argv, "-F");
 #else
 	bb_xdaemon(0, 1);
 #endif




More information about the busybox-cvs mailing list