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.
|
||||
|
||||
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:
|
||||
|
||||
@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
|
||||
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
|
||||
* comments in config file:: How to write a comment
|
||||
* acquisitionport directive:: Set port to use for initial time probes
|
||||
|
|
|
@ -4,7 +4,7 @@ chronyd \- chrony background daemon
|
|||
|
||||
.SH SYNOPSIS
|
||||
.B chronyd
|
||||
[\fIOPTIONS\fR]
|
||||
[\fIOPTIONS\fR] [\fIconfiguration commands\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\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.
|
||||
|
||||
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
|
||||
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 lock_memory = 0, sched_priority = 0;
|
||||
int system_log = 1;
|
||||
int config_args = 0;
|
||||
|
||||
LOG_Initialise();
|
||||
|
||||
|
@ -383,8 +384,12 @@ int main
|
|||
address_family = IPADDR_INET4;
|
||||
} else if (!strcmp("-6", *argv)) {
|
||||
address_family = IPADDR_INET6;
|
||||
} else {
|
||||
} else if (*argv[0] == '-') {
|
||||
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);
|
||||
|
||||
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
|
||||
* forking, so that message logging goes to the right place (i.e. syslog), in
|
||||
|
|
Loading…
Reference in a new issue