---
name: "runit-shutdown"
section: "8"
platform: "linux"
package: "runit"
version: "2.2.0-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/runit-shutdown"
---

# runit-shutdown(8)

poweroff or reboot the system

## NAME

shutdown, reboot, poweroff - poweroff or reboot the system

## SYNOPSIS

**/usr/sbin/shutdown \[-h\] \[-r\] \[-f\] \[-F\] \[now\]**\
 **/usr/sbin/reboot \[-w\] \[-f\] \[-n\]**\
 **/usr/sbin/halt \[-w\] \[-f\] \[-n\]**\
 **/usr/sbin/poweroff \[-w\] \[-f\] \[-n\]**

## DESCRIPTION

**Shutdown** is a program to poweroff or reboot the system that maintains some compatibility with original SysV-init halt, poweroff, reboot and shutdown programs. These programs are expected by some initscripts, graphical desktop environments and tools like acpi.

When called as shutdown, halt or poweroff without options, **[runit(8)](/runit/8.md)** is told to shutdown the system and poweroff.

When called as reboot **[runit(8)](/runit/8.md)** is told to reboot the system.

When **[runit(8)](/runit/8.md)** is not the current init system this program sends data in the appropriate format to perform the requested action to the initctl pipe, if it exists.

## SHUTDOWN OPTIONS

- **-h**

  Shutdown the system and poweroff; this is the default. Actually this option is ignored and can be omitted, it is maintained only for backward compatibility with Sysv's shutdown.

- **-r**

  Reboot the system instead of poweroff.

- **-f**

  Write a **/fastboot** flag file. The program or the scripts responsible for the system boot task can test for this file when the system comes up again and decide to skip fsck. The program or the scripts that perform the boot task also need to take care of the removal of the flag file.

- **-F**

  Write a **/forcefsck** flag file. The program or the scripts responsible for the system boot task can test for this file when the system comes up again and decide to run fsck with a 'force' flag. The program or the scripts that perform the boot task also need to take care of the removal of the flag file.

  The original Sysv shutdown implementation required a **time** parameter for shutdown and allowed for an optional **shutdown message.** The runit shutdown program does not support extra arguments after the options; if a **time** parameter other than 'now' is given, shutdown will exit with an error. To retain compatibility with acpi, -H, -P flags and shutdown messages are ignored and shutdown will continue without errors (see #1087001).

## HALT OPTIONS

- **-f**

  Invoke sync(), then force an unsafe reboot or poweroff immediately without signaling the init system. This will likely result in an unclean shutdown and can cause data loss or corruption. When runit is init, this option is a No-Op and all other options are ignored. See #899246

- **--force**

  Invoke sync(), then force an unsafe reboot or poweroff immediately without signaling the init system. This will likely result in an unclean shutdown and can cause data loss or corruption. This option works regardless of the running init system.

- **-w, --wtmp-only**

  Try to write a shutdown wtmp entry in **[wtmpdb(8)](/wtmpdb/8.md)** database; if **/usr/bin/wtmpdb** program is not found or not executable, a warning is printed instead.

- **-n**

  Write a **/etc/runit/nosync** flag file. If this file exists runit does not invoke sync() before reboot or poweroff. The **/etc/runit/nosync** flag file is also checked when this program is called with **-f** or **--force**

  Any other option given is ignored except that a warning is printed.

## SWITCHING FORM OTHER INIT SYSTEMS

This program maintains a compatibility layer with SysV-init's initctl pipe according to the spec described in SysV-init's initctl(5). This allow one to reboot the system when switching from another init to runit-init.

Currently only switching from systemd and SysV-init is tested but any other init system that maintains an initctl pipe compatible with SysV's one should work.

## BUGS

Combining flags, like **halt -wf** is not supported, all merged short options will be ignored.

## SEE ALSO

[**init**(8)](/init/8.md)
