main: dump history by default
Always write the measurement history on exit when the dump directory is specified and silently ignore the dumponexit directive. There doesn't seem to be a good use case for dumpdir and -r without dumponexit as the history would be invalidated by adjustments of the clock that happened between the dump command and chronyd exit.
This commit is contained in:
parent
539ef3f770
commit
f3a16383b9
5 changed files with 11 additions and 37 deletions
11
conf.c
11
conf.c
|
@ -104,7 +104,6 @@ static int do_log_tracking = 0;
|
||||||
static int do_log_rtc = 0;
|
static int do_log_rtc = 0;
|
||||||
static int do_log_refclocks = 0;
|
static int do_log_refclocks = 0;
|
||||||
static int do_log_tempcomp = 0;
|
static int do_log_tempcomp = 0;
|
||||||
static int do_dump_on_exit = 0;
|
|
||||||
static int log_banner = 32;
|
static int log_banner = 32;
|
||||||
static char *logdir;
|
static char *logdir;
|
||||||
static char *dumpdir;
|
static char *dumpdir;
|
||||||
|
@ -469,7 +468,7 @@ CNF_ParseLine(const char *filename, int number, char *line)
|
||||||
} else if (!strcasecmp(command, "dumpdir")) {
|
} else if (!strcasecmp(command, "dumpdir")) {
|
||||||
parse_string(p, &dumpdir);
|
parse_string(p, &dumpdir);
|
||||||
} else if (!strcasecmp(command, "dumponexit")) {
|
} else if (!strcasecmp(command, "dumponexit")) {
|
||||||
do_dump_on_exit = parse_null(p);
|
/* Silently ignored */
|
||||||
} else if (!strcasecmp(command, "fallbackdrift")) {
|
} else if (!strcasecmp(command, "fallbackdrift")) {
|
||||||
parse_fallbackdrift(p);
|
parse_fallbackdrift(p);
|
||||||
} else if (!strcasecmp(command, "hwclockfile")) {
|
} else if (!strcasecmp(command, "hwclockfile")) {
|
||||||
|
@ -1552,14 +1551,6 @@ CNF_GetRtcDevice(void)
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
int
|
|
||||||
CNF_GetDumpOnExit(void)
|
|
||||||
{
|
|
||||||
return do_dump_on_exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ================================================== */
|
|
||||||
|
|
||||||
double
|
double
|
||||||
CNF_GetMaxUpdateSkew(void)
|
CNF_GetMaxUpdateSkew(void)
|
||||||
{
|
{
|
||||||
|
|
1
conf.h
1
conf.h
|
@ -60,7 +60,6 @@ extern int CNF_GetLogRefclocks(void);
|
||||||
extern int CNF_GetLogTempComp(void);
|
extern int CNF_GetLogTempComp(void);
|
||||||
extern char *CNF_GetKeysFile(void);
|
extern char *CNF_GetKeysFile(void);
|
||||||
extern char *CNF_GetRtcFile(void);
|
extern char *CNF_GetRtcFile(void);
|
||||||
extern int CNF_GetDumpOnExit(void);
|
|
||||||
extern int CNF_GetManualEnabled(void);
|
extern int CNF_GetManualEnabled(void);
|
||||||
extern int CNF_GetCommandPort(void);
|
extern int CNF_GetCommandPort(void);
|
||||||
extern int CNF_GetRtcOnUtc(void);
|
extern int CNF_GetRtcOnUtc(void);
|
||||||
|
|
|
@ -550,11 +550,9 @@ built up since the previous slew.)
|
||||||
+
|
+
|
||||||
For such systems, it is possible to save the measurement history across
|
For such systems, it is possible to save the measurement history across
|
||||||
restarts of *chronyd* (assuming no changes are made to the system clock
|
restarts of *chronyd* (assuming no changes are made to the system clock
|
||||||
behaviour whilst it is not running). If this capability is to be used (via the
|
behaviour whilst it is not running). The *dumpdir* directive defines the
|
||||||
*dumponexit* directive in the configuration file, or the
|
directory where the measurement histories are saved when *chronyd* exits,
|
||||||
<<chronyc.adoc#dump,*dump*>> command in *chronyc*), the *dumpdir* directive
|
or the <<chronyc.adoc#dump,*dump*>> command in *chronyc* is issued.
|
||||||
should be used to define the directory where the measurement histories are
|
|
||||||
saved.
|
|
||||||
+
|
+
|
||||||
An example of the directive is:
|
An example of the directive is:
|
||||||
+
|
+
|
||||||
|
@ -566,11 +564,6 @@ A source whose IP address is _1.2.3.4_ would have its measurement history saved
|
||||||
in the file _@CHRONYRUNDIR@/1.2.3.4.dat_. History of reference clocks is saved
|
in the file _@CHRONYRUNDIR@/1.2.3.4.dat_. History of reference clocks is saved
|
||||||
to files named by their reference ID in form of _refid:XXXXXXXX.dat_.
|
to files named by their reference ID in form of _refid:XXXXXXXX.dat_.
|
||||||
|
|
||||||
[[dumponexit]]*dumponexit*::
|
|
||||||
If this directive is present, it indicates that *chronyd* should save the
|
|
||||||
measurement history for each of its time sources recorded whenever the program
|
|
||||||
exits. (See the <<dumpdir,*dumpdir*>> directive above.)
|
|
||||||
|
|
||||||
[[maxsamples]]*maxsamples* _samples_::
|
[[maxsamples]]*maxsamples* _samples_::
|
||||||
The *maxsamples* directive sets the default maximum number of samples that
|
The *maxsamples* directive sets the default maximum number of samples that
|
||||||
*chronyd* should keep for each source. This setting can be overridden for
|
*chronyd* should keep for each source. This setting can be overridden for
|
||||||
|
@ -2178,8 +2171,7 @@ is made of the RTC error at a particular RTC second, and the rate at which the
|
||||||
RTC gains or loses time relative to true time.
|
RTC gains or loses time relative to true time.
|
||||||
|
|
||||||
When the computer is powered down, the measurement histories for all the NTP
|
When the computer is powered down, the measurement histories for all the NTP
|
||||||
servers are saved to files (if the <<dumponexit,*dumponexit*>> directive is
|
servers are saved to files, and the RTC tracking information is also
|
||||||
specified in the configuration file), and the RTC tracking information is also
|
|
||||||
saved to a file (if the <<rtcfile,*rtcfile*>> directive has been specified).
|
saved to a file (if the <<rtcfile,*rtcfile*>> directive has been specified).
|
||||||
These pieces of information are also saved if the <<chronyc.adoc#dump,*dump*>>
|
These pieces of information are also saved if the <<chronyc.adoc#dump,*dump*>>
|
||||||
and <<chronyc.adoc#writertc,*writertc*>> commands respectively are issued
|
and <<chronyc.adoc#writertc,*writertc*>> commands respectively are issued
|
||||||
|
@ -2232,7 +2224,6 @@ log statistics measurements tracking
|
||||||
driftfile @CHRONYVARDIR@/drift
|
driftfile @CHRONYVARDIR@/drift
|
||||||
makestep 1.0 3
|
makestep 1.0 3
|
||||||
maxupdateskew 100.0
|
maxupdateskew 100.0
|
||||||
dumponexit
|
|
||||||
dumpdir @CHRONYVARDIR@
|
dumpdir @CHRONYVARDIR@
|
||||||
rtcfile @CHRONYVARDIR@/rtc
|
rtcfile @CHRONYVARDIR@/rtc
|
||||||
----
|
----
|
||||||
|
@ -2297,7 +2288,6 @@ clientloglimit 100000000
|
||||||
leapsectz right/UTC
|
leapsectz right/UTC
|
||||||
driftfile @CHRONYVARDIR@/drift
|
driftfile @CHRONYVARDIR@/drift
|
||||||
dumpdir @CHRONYRUNDIR@
|
dumpdir @CHRONYRUNDIR@
|
||||||
dumponexit
|
|
||||||
----
|
----
|
||||||
|
|
||||||
== SEE ALSO
|
== SEE ALSO
|
||||||
|
|
|
@ -1118,17 +1118,11 @@ purged. An example of how to do this is shown below.
|
||||||
|
|
||||||
[[dump]]*dump*::
|
[[dump]]*dump*::
|
||||||
The *dump* command causes *chronyd* to write its current history of
|
The *dump* command causes *chronyd* to write its current history of
|
||||||
measurements for each of its sources to dump files, either for inspection or to
|
measurements for each of its sources to dump files in the directory specified
|
||||||
support the *-r* option when *chronyd* is restarted.
|
in the configuration file by the <<chrony.conf.adoc#dumpdir,*dumpdir*>>
|
||||||
+
|
directive. Note that *chronyd* does this automatically when it exits. This
|
||||||
The *dump* command is somewhat equivalent to the
|
command is mainly useful for inspection of the history whilst *chronyd* is
|
||||||
<<chrony.conf.adoc#dumponexit,*dumponexit*>> directive in the configuration
|
running.
|
||||||
file.
|
|
||||||
+
|
|
||||||
To use the *dump* command, you might want to configure the name of the
|
|
||||||
directory into which the dump files will be written. This can only be
|
|
||||||
done in the configuration file with the <<chrony.conf.adoc#dumpdir,*dumpdir*>>
|
|
||||||
directive.
|
|
||||||
|
|
||||||
[[rekey]]*rekey*::
|
[[rekey]]*rekey*::
|
||||||
The *rekey* command causes *chronyd* to re-read the key file specified in the
|
The *rekey* command causes *chronyd* to re-read the key file specified in the
|
||||||
|
|
2
main.c
2
main.c
|
@ -97,7 +97,7 @@ MAI_CleanupAndExit(void)
|
||||||
{
|
{
|
||||||
if (!initialised) exit(exit_status);
|
if (!initialised) exit(exit_status);
|
||||||
|
|
||||||
if (CNF_GetDumpOnExit()) {
|
if (CNF_GetDumpDir()[0] != '\0') {
|
||||||
SRC_DumpSources();
|
SRC_DumpSources();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue