main: support configuration commands on command line
If there are extra arguments on the chronyd command line, they will be parsed as lines in a configuration file and the normal configuration file will be ignored.
This commit is contained in:
parent
4f3fb95981
commit
3edd3fe5a4
3 changed files with 27 additions and 3 deletions
|
@ -971,6 +971,10 @@ entering the command
|
||||||
|
|
||||||
Information messages and warnings will be logged to syslog.
|
Information messages and warnings will be logged to syslog.
|
||||||
|
|
||||||
|
If no configuration commands are specified on the command line,
|
||||||
|
@code{chronyd} will read the commands from the configuration file
|
||||||
|
(default @file{@SYSCONFDIR@/chrony.conf}).
|
||||||
|
|
||||||
The command line options supported are as follows:
|
The command line options supported are as follows:
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
|
@ -1106,6 +1110,10 @@ Each command in the configuration file is placed on a separate line.
|
||||||
The following sections describe each of the commands in turn. The
|
The following sections describe each of the commands in turn. The
|
||||||
directives can occur in any order in the file.
|
directives can occur in any order in the file.
|
||||||
|
|
||||||
|
The configuration commands can also be specified directly on the
|
||||||
|
@code{chronyd} command line, each argument is parsed as a line and
|
||||||
|
the configuration file is ignored.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* comments in config file:: How to write a comment
|
* comments in config file:: How to write a comment
|
||||||
* acquisitionport directive:: Set port to use for initial time probes
|
* acquisitionport directive:: Set port to use for initial time probes
|
||||||
|
|
|
@ -4,7 +4,7 @@ chronyd \- chrony background daemon
|
||||||
|
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B chronyd
|
.B chronyd
|
||||||
[\fIOPTIONS\fR]
|
[\fIOPTIONS\fR] [\fIconfiguration commands\fR]
|
||||||
|
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
\fIchrony\fR is a pair of programs for maintaining the accuracy of computer
|
\fIchrony\fR is a pair of programs for maintaining the accuracy of computer
|
||||||
|
@ -31,6 +31,9 @@ command:
|
||||||
|
|
||||||
Information messages and warnings will be logged to syslog.
|
Information messages and warnings will be logged to syslog.
|
||||||
|
|
||||||
|
If no configuration commands are specified on the command line,
|
||||||
|
\fBchronyd\fR will read the commands from the configuration file
|
||||||
|
(default \fI@SYSCONFDIR@/chrony.conf\fR).
|
||||||
|
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
A summary of the options supported by \fBchronyd\fR is included below.
|
A summary of the options supported by \fBchronyd\fR is included below.
|
||||||
|
|
17
main.c
17
main.c
|
@ -332,6 +332,7 @@ int main
|
||||||
int other_pid;
|
int other_pid;
|
||||||
int lock_memory = 0, sched_priority = 0;
|
int lock_memory = 0, sched_priority = 0;
|
||||||
int system_log = 1;
|
int system_log = 1;
|
||||||
|
int config_args = 0;
|
||||||
|
|
||||||
LOG_Initialise();
|
LOG_Initialise();
|
||||||
|
|
||||||
|
@ -383,8 +384,12 @@ int main
|
||||||
address_family = IPADDR_INET4;
|
address_family = IPADDR_INET4;
|
||||||
} else if (!strcmp("-6", *argv)) {
|
} else if (!strcmp("-6", *argv)) {
|
||||||
address_family = IPADDR_INET6;
|
address_family = IPADDR_INET6;
|
||||||
} else {
|
} else if (*argv[0] == '-') {
|
||||||
LOG_FATAL(LOGF_Main, "Unrecognized command line option [%s]", *argv);
|
LOG_FATAL(LOGF_Main, "Unrecognized command line option [%s]", *argv);
|
||||||
|
} else {
|
||||||
|
/* Process remaining arguments and configuration lines */
|
||||||
|
config_args = argc;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -410,7 +415,15 @@ int main
|
||||||
DNS_SetAddressFamily(address_family);
|
DNS_SetAddressFamily(address_family);
|
||||||
|
|
||||||
CNF_SetRestarted(restarted);
|
CNF_SetRestarted(restarted);
|
||||||
CNF_ReadFile(conf_file);
|
|
||||||
|
/* Parse the config file or the remaining command line arguments */
|
||||||
|
if (!config_args) {
|
||||||
|
CNF_ReadFile(conf_file);
|
||||||
|
} else {
|
||||||
|
do {
|
||||||
|
CNF_ParseLine(NULL, config_args - argc + 1, *argv);
|
||||||
|
} while (++argv, --argc);
|
||||||
|
}
|
||||||
|
|
||||||
/* Check whether another chronyd may already be running. Do this after
|
/* Check whether another chronyd may already be running. Do this after
|
||||||
* forking, so that message logging goes to the right place (i.e. syslog), in
|
* forking, so that message logging goes to the right place (i.e. syslog), in
|
||||||
|
|
Loading…
Reference in a new issue