diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-03-14 21:55:41 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-03-14 21:55:41 +0000 |
commit | cfa2b3a20984811997b6f7f6fce2ea9b0d53e7f7 (patch) | |
tree | ee4de7e566ac86b212648b69aa1bf57e6007761b | |
parent | 1ce190b7c1a1af40c1b12f69036e10b9a96ea2c8 (diff) | |
download | busybox-cfa2b3a20984811997b6f7f6fce2ea9b0d53e7f7.tar.gz |
watchdog: don't use static variable
-rw-r--r-- | miscutils/watchdog.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/miscutils/watchdog.c b/miscutils/watchdog.c index 9dbefb985..ed9026d9e 100644 --- a/miscutils/watchdog.c +++ b/miscutils/watchdog.c @@ -13,13 +13,12 @@ #define OPT_FOREGROUND 0x01 #define OPT_TIMER 0x02 -/* Watchdog file descriptor */ -static int fd; - -static void watchdog_shutdown(int ATTRIBUTE_UNUSED unused) +static void watchdog_shutdown(int ATTRIBUTE_UNUSED sig) ATTRIBUTE_NORETURN; +static void watchdog_shutdown(int ATTRIBUTE_UNUSED sig) { - write(fd, "V", 1); /* Magic, see watchdog-api.txt in kernel */ - close(fd); + write(3, "V", 1); /* Magic, see watchdog-api.txt in kernel */ + if (ENABLE_FEATURE_CLEAN_UP) + close(3); exit(0); } @@ -49,18 +48,19 @@ int watchdog_main(int argc, char **argv) signal(SIGHUP, watchdog_shutdown); signal(SIGINT, watchdog_shutdown); - fd = xopen(argv[argc - 1], O_WRONLY); + /* Use known fd # - avoid needing global 'int fd' */ + dup2(xopen(argv[argc - 1], O_WRONLY), 3); while (1) { /* * Make sure we clear the counter before sleeping, as the counter value * is undefined at this point -- PFM */ - write(fd, "\0", 1); + write(3, "", 1); sleep(timer_duration); } watchdog_shutdown(0); - return EXIT_SUCCESS; + /* return EXIT_SUCCESS; */ } |