ntpd: with -q, exit after 60 seconds even if time is not synced.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
1cd0d86005
commit
74c992af5c
@ -1920,9 +1920,28 @@ static NOINLINE void ntp_init(char **argv)
|
|||||||
if (opts & OPT_N)
|
if (opts & OPT_N)
|
||||||
setpriority(PRIO_PROCESS, 0, -15);
|
setpriority(PRIO_PROCESS, 0, -15);
|
||||||
|
|
||||||
bb_signals((1 << SIGTERM) | (1 << SIGINT), record_signo);
|
/* If network is up, syncronization occurs in ~10 seconds.
|
||||||
/* Removed SIGHUP here: */
|
* We give "ntpd -q" a full minute to finish, then we exit.
|
||||||
bb_signals((1 << SIGPIPE) | (1 << SIGCHLD), SIG_IGN);
|
*
|
||||||
|
* I tested ntpd 4.2.6p1 and apparently it never exits
|
||||||
|
* (will try forever), but it does not feel right.
|
||||||
|
* The goal of -q is to act like ntpdate: set time
|
||||||
|
* after a reasonably small period of polling, or fail.
|
||||||
|
*/
|
||||||
|
if (opts & OPT_q)
|
||||||
|
alarm(60);
|
||||||
|
|
||||||
|
bb_signals(0
|
||||||
|
| (1 << SIGTERM)
|
||||||
|
| (1 << SIGINT)
|
||||||
|
| (1 << SIGALRM)
|
||||||
|
, record_signo
|
||||||
|
);
|
||||||
|
bb_signals(0
|
||||||
|
| (1 << SIGPIPE)
|
||||||
|
| (1 << SIGCHLD)
|
||||||
|
, SIG_IGN
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ntpd_main(int argc UNUSED_PARAM, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
int ntpd_main(int argc UNUSED_PARAM, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user