{
    "mode": "man",
    "parameter": "systemd-sysupdate-reboot.timer",
    "section": "8",
    "url": "https://www.chedong.com/phpMan.php/man/systemd-sysupdate-reboot.timer/8/json",
    "generated": "2026-10-07T21:09:49Z",
    "synopsis": "systemd-sysupdate [OPTIONS...]\nsystemd-sysupdate.service",
    "sections": {
        "NAME": {
            "content": "systemd-sysupdate, systemd-sysupdate.service, systemd-sysupdate.timer, systemd-sysupdate-\nreboot.service, systemd-sysupdate-reboot.timer - Automatically Update OS or Other Resources\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "systemd-sysupdate [OPTIONS...]\n\nsystemd-sysupdate.service\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "systemd-sysupdate atomically updates the host OS, container images, portable service images\nor other sources, based on the transfer configuration files described in sysupdate.d(5).\n\nThis tool implements file, directory, or partition based update schemes, supporting multiple\nparallel installed versions of specific resources in an A/B (or even: A/B/C, A/B/C/D/, ...)\nstyle. A/B updating means that when one version of a resource is currently being used, the\nnext version can be downloaded, unpacked, and prepared in an entirely separate location,\nindependently of the first, and — once complete — be activated, swapping the roles so that it\nbecomes the used one and the previously used one becomes the one that is replaced by the next\nupdate, and so on. The resources to update are defined in transfer files, one for each\nresource to be updated. For example, resources that may be updated with this tool could be: a\nroot file system partition, a matching Verity partition plus one kernel image. The\ncombination of the three would be considered a complete OS update.\n\nThe tool updates partitions, files or directory trees always in whole, and operates with at\nleast two versions of each of these resources: the current version, plus the next version:\nthe one that is being updated to, and which is initially incomplete as the downloaded data is\nwritten to it; plus optionally more versions. Once the download of a newer version is\ncomplete it becomes the current version, releasing the version previously considered current\nfor deletion/replacement/updating.\n\nWhen installing new versions the tool will directly download, decompress, unpack and write\nthe new version into the destination. This is done in a robust fashion so that an incomplete\ndownload can be recognized on next invocation, and flushed out before a new attempt is\ninitiated.\n\nNote that when writing updates to a partition, the partition has to exist already, as\nsystemd-sysupdate will not automatically create new partitions. Use a tool such as systemd-\nrepart(8) to automatically create additional partitions to be used with systemd-sysupdate on\nboot.\n\nThe tool can both be used on the running OS, to update the OS in \"online\" state from within\nitself, and on \"offline\" disk images, to update them from the outside based on transfer files\nembedded in the disk images. For the latter, see --image= below. The latter is particularly\ninteresting to update container images or portable service images.\n\nThe systemd-sysupdate.service system service will automatically update the host OS based on\nthe installed transfer files. It is triggered in regular intervals via\nsystemd-sysupdate.timer. The systemd-sysupdate-reboot.service will automatically reboot the\nsystem after a new version is installed. It is triggered via systemd-sysupdate-reboot.timer.\nThe two services are separate from each other as it is typically advisable to download\nupdates regularly while the system is up, but delay reboots until the appropriate time (i.e.\ntypically at night). The two sets of service/timer units may be enabled separately.\n\nFor details about transfer files and examples see sysupdate.d(5).\n",
            "subsections": []
        },
        "COMMAND": {
            "content": "The following commands are understood:\n\nlist [VERSION]\nIf invoked without an argument, enumerates downloadable and installed versions, and shows\na summarizing table with the discovered versions and their properties, including whether\nthere's a newer candidate version to update to. If a version argument is specified, shows\ndetails about the specific version, including the individual files that need to be\ntransferred to acquire the version.\n\nIf no command is explicitly specified this command is implied.\n\nAdded in version 251.\n",
            "subsections": [
                {
                    "name": "check-new",
                    "content": "Checks if there's a new version available. This internally enumerates downloadable and\ninstalled versions and returns exit status 0 if there's a new version to update to,\nnon-zero otherwise. If there is a new version to update to, its version identifier is\nwritten to standard output.\n\nAdded in version 251.\n\nupdate [VERSION]\nInstalls (updates to) the specified version, or if none is specified to the newest\nversion available. If the version is already installed or no newer version available, no\noperation is executed.\n\nIf a new version to install/update to is found, old installed versions are deleted until\nat least one new version can be installed, as configured via InstanceMax= in\nsysupdate.d(5), or via the available partition slots of the right type. This implicit\noperation can also be invoked explicitly via the vacuum command described below.\n\nAdded in version 251.\n"
                },
                {
                    "name": "vacuum",
                    "content": "Deletes old installed versions until the limits configured via InstanceMax= in\nsysupdate.d(5) are met again. Normally, it should not be necessary to invoke this command\nexplicitly, since it is implicitly invoked whenever a new update is initiated.\n\nAdded in version 251.\n"
                },
                {
                    "name": "pending",
                    "content": "Checks whether a newer version of the OS is installed than the one currently running.\nReturns zero if so, non-zero otherwise. This compares the newest installed version's\nidentifier with the OS image version as reported by the IMAGEVERSION= field in\n/etc/os-release. If the former is newer than the latter, an update was apparently\ncompleted but not activated (i.e. rebooted into) yet.\n\nAdded in version 251.\n"
                },
                {
                    "name": "reboot",
                    "content": "Similar to the pending command but immediately reboots in case a newer version of the OS\nhas been installed than the one currently running. This operation can be done implicitly\ntogether with the update command, after a completed update via the --reboot switch, see\nbelow. This command will execute no operation (and return success) if no update has been\ninstalled, and thus the system was not rebooted.\n\nAdded in version 251.\n"
                },
                {
                    "name": "components",
                    "content": "Lists components that can be updated. This enumerates the /etc/sysupdate.*.d/,\n/run/sysupdate.*.d/ and /usr/lib/sysupdate.*.d/ directories that contain transfer files.\nThis command is useful to list possible parameters for --component= (see below).\n\nAdded in version 251.\n"
                },
                {
                    "name": "-h --help",
                    "content": "Print a short help text and exit.\n",
                    "flag": "-h",
                    "long": "--help"
                },
                {
                    "name": "--version",
                    "content": "Print a short version string and exit.\n",
                    "long": "--version"
                }
            ]
        },
        "OPTIONS": {
            "content": "The following options are understood:\n\n--component=, -C\nSelects the component to update. Takes a component name as argument. This has the effect\nof slightly altering the search logic for transfer files. If this switch is not used, the\ntransfer files are loaded from /etc/sysupdate.d/*.conf, /run/sysupdate.d/*.conf and\n/usr/lib/sysupdate.d/*.conf. If this switch is used, the specified component name is used\nto alter the directories to look in to be /etc/sysupdate.component.d/*.conf,\n/run/sysupdate.component.d/*.conf and /usr/lib/sysupdate.component.d/*.conf, each time\nwith the component string replaced with the specified component name.\n\nUse the components command to list available components to update. This enumerates the\ndirectories matching this naming rule.\n\nComponents may be used to define a separate set of transfer files for different\ncomponents of the OS that shall be updated separately. Do not use this concept for\nresources that shall always be updated together in a synchronous fashion. Simply define\nmultiple transfer files within the same sysupdate.d/ directory for these cases.\n\nThis option may not be combined with --definitions=.\n\nAdded in version 251.\n",
            "subsections": [
                {
                    "name": "--definitions=",
                    "content": "A path to a directory. If specified, the transfer *.conf files are read from this\ndirectory instead of /usr/lib/sysupdate.d/*.conf, /etc/sysupdate.d/*.conf, and\n/run/sysupdate.d/*.conf.\n\nThis option may not be combined with --component=.\n\nAdded in version 251.\n"
                },
                {
                    "name": "--root=",
                    "content": "Takes a path to a directory to use as root file system when searching for\nsysupdate.d/*.conf files.\n\nAdded in version 251.\n"
                },
                {
                    "name": "--image=",
                    "content": "Takes a path to a disk image file or device to mount and use in a similar fashion to\n--root=, see above. If this is used and partition resources are updated this is done\ninside the specified disk image.\n\nAdded in version 251.\n\n--image-policy=policy\nTakes an image policy string as argument, as per systemd.image-policy(7). The policy is\nenforced when operating on the disk image specified via --image=, see above. If not\nspecified defaults to the \"*\" policy, i.e. all recognized file systems in the image are\nused.\n\n--instances-max=, -m\nTakes a decimal integer greater than or equal to 2. Controls how many versions to keep at\nany time. This option may also be configured inside the transfer files, via the\nInstancesMax= setting, see sysupdate.d(5) for details.\n\nAdded in version 251.\n"
                },
                {
                    "name": "--sync=",
                    "content": "Takes a boolean argument, defaults to yes. This may be used to specify whether the newly\nupdated resource versions shall be synchronized to disk when appropriate (i.e. after the\ndownload is complete, before it is finalized, and again after finalization). This should\nnot be turned off, except to improve runtime performance in testing environments.\n\nAdded in version 251.\n"
                },
                {
                    "name": "--verify=",
                    "content": "Takes a boolean argument, defaults to yes. Controls whether to cryptographically verify\ndownloads. Do not turn this off, except in testing environments.\n\nAdded in version 251.\n"
                },
                {
                    "name": "--reboot",
                    "content": "When used in combination with the update command and a new version is installed,\nautomatically reboots the system immediately afterwards.\n\nAdded in version 251.\n",
                    "long": "--reboot"
                },
                {
                    "name": "--no-pager",
                    "content": "Do not pipe output into a pager.\n",
                    "long": "--no-pager"
                },
                {
                    "name": "--no-legend",
                    "content": "Do not print the legend, i.e. column headers and the footer with hints.\n\n--json=MODE\nShows output formatted as JSON. Expects one of \"short\" (for the shortest possible output\nwithout any redundant whitespace or line breaks), \"pretty\" (for a pretty version of the\nsame, with indentation and line breaks) or \"off\" (to turn off JSON output, the default).\n",
                    "long": "--no-legend"
                }
            ]
        },
        "EXIT STATUS": {
            "content": "On success, 0 is returned, a non-zero failure code otherwise.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "systemd(1), sysupdate.d(5), systemd-repart(8)\n\nsystemd 255                                                                     SYSTEMD-SYSUPDATE(8)",
            "subsections": []
        }
    },
    "summary": "systemd-sysupdate, systemd-sysupdate.service, systemd-sysupdate.timer, systemd-sysupdate- reboot.service, systemd-sysupdate-reboot.timer - Automatically Update OS or Other Resources",
    "flags": [
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "A path to a directory. If specified, the transfer *.conf files are read from this directory instead of /usr/lib/sysupdate.d/*.conf, /etc/sysupdate.d/*.conf, and /run/sysupdate.d/*.conf. This option may not be combined with --component=. Added in version 251."
        },
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "Takes a path to a directory to use as root file system when searching for sysupdate.d/*.conf files. Added in version 251."
        },
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "Takes a path to a disk image file or device to mount and use in a similar fashion to --root=, see above. If this is used and partition resources are updated this is done inside the specified disk image. Added in version 251. --image-policy=policy Takes an image policy string as argument, as per systemd.image-policy(7). The policy is enforced when operating on the disk image specified via --image=, see above. If not specified defaults to the \"*\" policy, i.e. all recognized file systems in the image are used. --instances-max=, -m Takes a decimal integer greater than or equal to 2. Controls how many versions to keep at any time. This option may also be configured inside the transfer files, via the InstancesMax= setting, see sysupdate.d(5) for details. Added in version 251."
        },
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "Takes a boolean argument, defaults to yes. This may be used to specify whether the newly updated resource versions shall be synchronized to disk when appropriate (i.e. after the download is complete, before it is finalized, and again after finalization). This should not be turned off, except to improve runtime performance in testing environments. Added in version 251."
        },
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "Takes a boolean argument, defaults to yes. Controls whether to cryptographically verify downloads. Do not turn this off, except in testing environments. Added in version 251."
        },
        {
            "flag": "",
            "long": "--reboot",
            "arg": null,
            "description": "When used in combination with the update command and a new version is installed, automatically reboots the system immediately afterwards. Added in version 251."
        },
        {
            "flag": "",
            "long": "--no-pager",
            "arg": null,
            "description": "Do not pipe output into a pager."
        },
        {
            "flag": "",
            "long": "--no-legend",
            "arg": null,
            "description": "Do not print the legend, i.e. column headers and the footer with hints. --json=MODE Shows output formatted as JSON. Expects one of \"short\" (for the shortest possible output without any redundant whitespace or line breaks), \"pretty\" (for a pretty version of the same, with indentation and line breaks) or \"off\" (to turn off JSON output, the default)."
        }
    ],
    "examples": [],
    "see_also": [
        {
            "name": "systemd",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/systemd/1/json"
        },
        {
            "name": "sysupdate.d",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/sysupdate.d/5/json"
        },
        {
            "name": "systemd-repart",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/systemd-repart/8/json"
        },
        {
            "name": "SYSTEMD-SYSUPDATE",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/SYSTEMD-SYSUPDATE/8/json"
        }
    ]
}