PM-ACTION(8)
β¨ PM-ACTION(8) β¨
the pm-utils User Manual, bestie π β yes this is the whole manual, and yes it's giving "my laptop needs a nap" energy π€
πΈ NAME πΈ
pm-action β put your computer to sleep or hibernate it πβ¨
π¦ SYNOPSIS π¦
pm-hibernate [--help]
pm-suspend [--quirk-*] [--help]
pm-suspend-hybrid [--quirk-*] [--help]
π DESCRIPTION π
Okay so this page spills the tea on pm-action, pm-hibernate, pm-suspend and pm-suspend-hybrid. Originally it was written for the Debian(TM) distribution and then the pm-utils project adopted it, iconic behavior honestly π«Ά
These commands are how you tuck your machine into a sleep state. The exact way that happens is lowkey customizable β you can influence it by installing executables and configuration snippets. And heads up: some options need external programs to even work, no cap.
Normally these get called by UPower or hald when some program in your desktop session (think gnome-power-manager) pokes them into action. You can call them straight from the command line, but fr fr it is not guaranteed that everything in your desktop session keeps working like you expect. π
π€ pm-suspend
During suspend, most devices get shut down and the system state gets saved in RAM. The system still needs power in this state. Most modern systems take 3 to 5 seconds to enter and leave suspend, and most laptops can chill in suspend mode for 1 to 3 days before the battery is fully drained. π
π΄ pm-hibernate
During hibernate the system is fully powered off, and system state gets saved to disk. No power required, and it can stay hibernated indefinitely, bestie. Most modern systems take 15 to 45 seconds to enter and leave hibernate β and the more memory you have, the longer entering and leaving takes. πΎ
π§ pm-suspend-hybrid
Hybrid-suspend is where the system does everything it needs to hibernate, but then suspends instead of shutting down. So your computer can wake up quicker than normal hibernation if you don't run out of power, and you can still resume even if you do run out of power. s2both(8) is one hybrid-suspend implementation. β¨
π₯ OPTIONS π₯
On some hardware, putting the video card into the suspend state and bringing it back needs some special quirk handling. With the --quirk-* options on the pm-suspend and pm-suspend-hybrid commands, you get to pick which quirks get used. ποΈ
If pm-suspend, pm-hibernate, or pm-suspend-hybrid are invoked with no command line parameters at all, they'll try to grab the correct quirks from the internal quirk database. π
--quirk-dpms-onβ forces the video hardware to turn the screen on during resume. Most video adapters turn the screen on themselves, but if you get a blank screen on resume that you can fix by moving the mouse or typing, then this option might be your girl. π₯οΈ--quirk-dpms-suspendβ forces the video hardware to turn the screen off when suspending. Most video adapters seem to do this correctly, but some do not, and that wastes SO much power. If your screen is still on after a successful suspend, you probably need this. β‘--quirk-radeon-offβ forces Radeon hardware to turn the display off during suspend and back on during resume. You only need this on some old ThinkPads from the '30 series (T30, X31, R32, ... ) with Radeon video hardware. π--quirk-s3-biosβ calls the video BIOS during S3 resume. Unfortunately, it's not always allowed to call the video BIOS at that point, so sometimes adding this option can actually break resume on some systems. π¬--quirk-s3-modeβ initializes the video card into a VGA text mode, then uses the BIOS to set the video mode. On some systems S3 BIOS only initializes the video BIOS to text mode, so you need both S3 BIOS and S3 MODE together. π§©--quirk-vbe-postβ tries to reinitialize the video card when resuming from suspend, using the same code the system BIOS uses at boot to initialize the video hardware. Not all video cards need this, and using it on systems where it isn't needed can make the system lock up when resuming. π--quirk-vbemode-restoreβ saves and restores the current VESA mode, which may be necessary to avoid X screen corruption. Using this on Intel graphics hardware is probably a bad idea, ngl. π--quirk-vbestate-restoreβ saves and restores some low level hardware state which may be invalid after suspend. π--quirk-vga-mode-3β tries to force the video card into a standard text mode on resume. πΊ--quirk-save-pciβ saves the PCI config space for the VGA card. πΎ--store-quirks-as-lkwβ saves the quirks the video adaptor needed frompm-suspendorpm-suspend-hybridas a.quirkdbfile that's specific to this system. The file gets saved in/var/cache/pm-utils/last_known_working.quirkdb. This parameter only saves the actual quirks that were used to successfully suspend/resume a system, and it'll be specific to the exact configuration of that system β including the video hardware, the video driver, and whether or not kernel modesetting was used. If the system configuration changes, like after a kernel upgrade, this file gets overwritten. β
π FILES π
/etc/pm/config.dβ the files in this directory are evaluated in C sort order. These files can be provided by individual packages outside of pm-utils. If a global configuration variable is set, the value set will be appended to the previous value. If any other variable is set, it will be ignored. The syntax is simply:VAR_NAME=value. Check out the CONFIGURATION VARIABLES section for the valid variables defined by pm-utils. External packages can define others β see their respective documentation for more info. π/etc/pm/sleep.d,/usr/lib/pm-utils/sleep.dβ programs in these directories (called hooks) are combined and executed in C sort order before suspend and hibernate, with the argumentsuspendorhibernate. Afterwards they get called in reverse order with the argumentresumeandthawrespectively. If both directories contain a similar named file, the one in/etc/pm/sleep.dgets preference. You can disable a hook in the distribution directory by putting a non-executable file in/etc/pm/sleep.d, or by adding it to theHOOK_BLACKLISTconfiguration variable. πͺ/var/log/pm-suspend.logβ this log file shows what was done on the last suspend/hibernate and resume/thaw. π
π SLEEP HOOK ORDERING CONVENTION π
00-49β user and most package supplied hooks. If a hook assumes that all the usual services and userspace infrastructure is still running, it belongs here. π50-74β service handling hooks. Hooks that start or stop a service live in this range. At or before 50, hooks can assume that all services are still enabled. π§75-89β module and non-core hardware handling. If a hook needs to load/unload a module, or needs to place non-video hardware that would otherwise break suspend or hibernate into a safe state, it belongs in this range. At or before 75, hooks can assume all modules are still loaded. π§±90-99β reserved for critical suspend hooks. π¨
π CONFIGURATION VARIABLES π
Configuration variables defined by pm-utils. These can be set in any file in /etc/pm/config.d/. ποΈ
SLEEP_MODULE[=kernel] β the default suspend backend to use. Valid values are:kernelβ the built-in kernel suspend/resume support. Use this if nothing else is supported on your system. The kernel backend is always used if nothing else is available. π§uswsuspβ if your system has support for the userspace suspend programs (s2ram/s2disk/s2both), then use this. π«Άtuxoniceβ if your system has support for tuxonice/suspend2, use this. π§β¨
HIBERNATE_RESUME_POST_VIDEO[=no] β whether video should be posted after hibernate, just like after suspend. You should not normally need to set this. π€·SUSPEND_MODULESβ space separated list of modules to unload before suspend. π¦HOOK_BLACKLISTβ space separated list of hooks that should be disabled. π«ADD_PARAMETERSβ space separated list of command line parameters that should be added. If special quirks are needed for your system, you can add them here. βDROP_PARAMETERSβ space separated list of command line parameters that should be ignored. If particular quirks are causing problems for your system, you can add them here. If you want to remove all parameters useall. βHIBERNATE_MODEβ default method to power down the system when hibernating. If not set, the system uses the kernel default as a default value. Check/sys/power/diskfor valid values. The default value will be surrounded by [square brackets]. πNEED_CLOCK_SYNCβ if your system clock drifts across a suspend/resume or hibernate/thaw cycle, you should set this totrue. This causes pm-utils to synchronize the system clock whenever going through a sleep/wake cycle, at the expense of making suspend/resume take longer. β°PM_HIBERNATE_DELAY[=900] β if you're using kernel suspend/resume and you invokepm-suspend-hybrid, this environment variable controls how many seconds the system waits after going into suspend before waking back up and hibernating. By default this is set to900seconds (15 minutes). β³
π RETURN VALUES π
Return values less than 128 mean that pm-action failed before trying to put the system in the requested power saving state. A return value of 128 means pm-action tried to put the machine in the requested power state but failed. A return value greater than 128 means pm-action hit an error and also failed to enter the requested power saving state. π
π¦ DEBUGGING π¦
Debugging suspend/resume can be a tricky process, and it's covered in more detail in /usr/share/doc/pm-utils/README.debugging. π
π BUGS π
The upstream BTS can be found at https://bugs.freedesktop.org/. Select pm-utils as the product. π
π SEE ALSO π
s2ram(8), s2disk(8), s2both(8), pm-is-supported(1), pm-powersave(8), vbetool(8), radeontool(8)
π AUTHOR π
Tim Dijkstra <tim@famdijkstra.org> Manpage author. βοΈ
π COPYRIGHT π
Okay so legally speaking, bestie, we gotta give credit where credit is due π
- Copyright Β© 2007 Tim Dijkstra β yeah, that's the icon who wrote this whole thing, no cap π
- This manual page was originally written for the Debian(TM) system, and has since been adopted by the pm-utils project. So like, it started as a Debian baby and got scooped up by the bigger fam π«Ά
- Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or (at your option) any later version published by the Free Software Foundation. Slay, that's the license, periodt β¨
tl;dr: share it, remix it, ship it β just keep it under the GPL v2-or-later vibe and don't be weird about it π
and that's a wrap on PM-ACTION(8), bestie!! πΈ This page is from the pm-action crew, dated Apr 25, 2007, and lives at section 8 of the manual (PM-ACTION(8), if you're being fancy about it π). Go forth and suspend/resume responsibly, ily, bye ππ¦
π¦ where this page comes from
- debian trixie: pm-utils 1.4.1-21 Β· GPL-2.0-only
- ubuntu noble: pm-utils 1.4.1-21 Β· GPL-2.0-only
- ubuntu questing: pm-utils 1.4.1-21
- ubuntu resolute: pm-utils 1.4.1-21build1 Β· GPL-2.0-only
- ubuntu stonking: pm-utils 1.4.1-22 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms