Skip to content

Commit

Permalink
timedatectl: introduce new command line client for timedated
Browse files Browse the repository at this point in the history
Much like logind has a client in loginctl, and journald in journalctl
introduce timedatectl, to change the system time (incl. RTC), timezones
and related settings.
  • Loading branch information
poettering committed Oct 17, 2012
1 parent 22349ce commit 6d0274f
Show file tree
Hide file tree
Showing 13 changed files with 959 additions and 32 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/timedatectl
/test-date
/install-tree
/systemd-journal-gatewayd
Expand Down
18 changes: 18 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -3194,6 +3194,24 @@ MANPAGES_ALIAS += \
man/systemd-timedated.8

man/systemd-timedated.8: man/systemd-timedated.service.8

timedatectl_SOURCES = \
src/timedate/timedatectl.c

timedatectl_CFLAGS = \
$(AM_CFLAGS) \
$(DBUS_CFLAGS)

timedatectl_LDADD = \
libsystemd-shared.la \
libsystemd-dbus.la

bin_PROGRAMS += \
timedatectl

MANPAGES += \
man/timedatectl.1

endif

polkitpolicy_in_files += \
Expand Down
4 changes: 4 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ F18:

Features:

* timedated: export boolean that clarifies whether NTP is even available

* timedated: refuse time changes when NTP is on

* journald: don't make SystemMinFileSize= configurable

* clean up date formatting and parsing so that all absolute/relative timestamps we format can also be parsed
Expand Down
5 changes: 5 additions & 0 deletions man/systemd-timedated.service.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@
is automatically activated on request and terminates
itself when it is unused.</para>

<para>The tool
<citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is a command line client to this service.</para>

<para>See the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/timedated">
developer documentation</ulink> for information about
Expand All @@ -75,6 +79,7 @@
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>localtime</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hwclock</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
Expand Down
243 changes: 243 additions & 0 deletions man/timedatectl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">

<!--
This file is part of systemd.
Copyright 2012 Lennart Poettering
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->

<refentry id="timedatectl">

<refentryinfo>
<title>timedatectl</title>
<productname>systemd</productname>

<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>[email protected]</email>
</author>
</authorgroup>
</refentryinfo>

<refmeta>
<refentrytitle>timedatectl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>

<refnamediv>
<refname>timedatectl</refname>
<refpurpose>Control the system time and date</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>timedatectl <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="req">COMMAND</arg></command>
</cmdsynopsis>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para><command>timedatectl</command> may be used to
query and change the system clock and its
settings.</para>
</refsect1>

<refsect1>
<title>Options</title>

<para>The following options are understood:</para>

<variablelist>
<varlistentry>
<term><option>--help</option></term>
<term><option>-h</option></term>

<listitem><para>Prints a short help
text and exits.</para></listitem>
</varlistentry>

<varlistentry>
<term><option>--version</option></term>

<listitem><para>Prints a short version
string and exits.</para></listitem>
</varlistentry>

<varlistentry>
<term><option>--no-pager</option></term>

<listitem><para>Do not pipe output into a
pager.</para></listitem>
</varlistentry>

<varlistentry>
<term><option>--no-ask-password</option></term>

<listitem><para>Don't query the user
for authentication for privileged
operations.</para></listitem>
</varlistentry>

<varlistentry>
<term><option>-H</option></term>
<term><option>--host</option></term>

<listitem><para>Execute operation
remotely. Specify a hostname, or
username and hostname separated by @,
to connect to. This will use SSH to
talk to a remote
system.</para></listitem>
</varlistentry>

<varlistentry>
<term><option>--fix-system</option></term>

<listitem><para>If
<command>set-local-rtc</command> is
invoked and this option is passed the
system clock is synchronized from the
RTC again, taking the new setting into
account. Otherwise the RTC is
synchonized from the system
clock.</para></listitem>
</varlistentry>
</variablelist>

<para>The following commands are understood:</para>

<variablelist>
<varlistentry>
<term><command>status</command></term>

<listitem><para>Show current settings
of the system clock and
RTC.</para></listitem>
</varlistentry>

<varlistentry>
<term><command>set-time [TIME]</command></term>

<listitem><para>Set the system clock
to the specified time. This will also
update the RTC time accordingly. The time
may be specified in the format
"2012-10-30
18:17:16".</para></listitem>
</varlistentry>

<varlistentry>
<term><command>set-timezone [TIMEZONE]</command></term>

<listitem><para>Set the system time
zone to the specified value. Available
time zones my be listed with
<command>list-timezones</command>. If
the RTC is configured to be in the
local time this will also update the
RTC time.</para></listitem>
</varlistentry>

<varlistentry>
<term><command>list-timezones</command></term>

<listitem><para>List available time
zones, one per line. Entries from the
list may selected as the system
timezone with
<command>set-timezone</command>.</para></listitem>
</varlistentry>

<varlistentry>
<term><command>set-local-rtc [BOOL]</command></term>

<listitem><para>Takes a boolean
argument. If <literal>0</literal> the
system is configured to maintain the
RTC in universal time, if
<literal>1</literal> it will maintain
the RTC in local time instead. Note
that maintaining the RTC in the local
timezone is is not fully supported and
will create various problems with time
zone changes and daylight saving
adjustments. If at all possible use
RTC in UTC. Note that invoking this
will also synchronize the RTC from the
system clock, unless
<option>--fix-system</option> is
passed (see above). This command will
change the 3rd line of
<filename>/etc/adjtime</filename>, as
documented in
<citerefentry><refentrytitle>hwclock</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para></listitem>
</varlistentry>

<varlistentry>
<term><command>set-ntp [BOOL]</command></term>

<listitem><para>Takes a boolean
argument. Controls whether NTP based
network time synchronization is
enabled (if
available).</para></listitem>
</varlistentry>

</variablelist>

</refsect1>

<refsect1>
<title>Exit status</title>

<para>On success 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>

<refsect1>
<title>Environment</title>

<variablelist>
<varlistentry>
<term><varname>$SYSTEMD_PAGER</varname></term>
<listitem><para>Pager to use when
<option>--no-pager</option> is not given;
overrides <varname>$PAGER</varname>. Setting
this to an empty string or the value
<literal>cat</literal> is equivalent to passing
<option>--no-pager</option>.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>

<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hwclock</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>date</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-timedated.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>

</refentry>
2 changes: 1 addition & 1 deletion rules/50-udev-default.rules
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,6 @@ KERNEL=="rfkill", MODE="0644"

KERNEL=="fuse", ACTION=="add", MODE="0666", OPTIONS+="static_node=fuse"

SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc"
SUBSYSTEM=="rtc", ATTR{hctosys}=="1", MODE="0644", SYMLINK+="rtc"

SUBSYSTEM=="firmware", ACTION=="add", IMPORT{builtin}="firmware"
Loading

0 comments on commit 6d0274f

Please sign in to comment.