Linux命令:将笔记本电脑/上网本置于休眠/挂起模式
时间:2020-01-09 10:41:22 来源:igfitidea点击:
如何在Linux操作系统下从bash shell命令行挂起或休眠?
如何在不使用其他软件的情况下使用命令行挂起或休眠我的Ubuntu Dell笔记本电脑?
您可以在Linux下使用以下命令来挂起或休眠Linux系统:
systemctlsuspend
命令在Linux上使用systemd从命令行挂起/休眠。pm-suspend
命令在挂起期间,大多数设备都将关闭,并且系统状态将保存在RAM中。在这种状态下,系统仍然需要电源。大多数现代系统需要3到5秒钟才能进入和退出挂起状态,大多数笔记本电脑在耗尽电池电量之前可以停留在挂起模式1到3天。pm-hibernate
命令在休眠期间,系统已完全关闭电源,并且系统状态已保存到磁盘。系统不需要电源,并且可以无限期地处于休眠模式。大多数现代系统需要15到45秒才能进入和退出休眠状态,而当您拥有更多内存时,进入和退出休眠状态的时间会更长。pm-suspend-hybrid
命令Hybrid-suspend是系统执行其需要休眠的所有过程的过程,但是挂起而不是关闭。这意味着,如果您没有断电,您的计算机可以比正常休眠更快地唤醒,并且即使断电也可以恢复。
上面的命令是名为pm-utils的软件包的一部分。
它是RHEL,Fedora,CentOS,Red Hat Enterprise Linux,Debian,Ubuntu和其他Linux发行版下的电源管理软件的软件包。
Linux命令:将笔记本电脑/上网本置于休眠/挂起模式
让我们逐步查看所有命令,以将Linux便携式计算机置于休眠或挂起模式。
基于系统的使用命令行挂起或休眠Linux笔记本电脑的方法
执行以下命令:
$ systemctl suspend
执行以下内容以休眠基于Linux的笔记本电脑:
$ systemctl hibernate
Linux命令挂起系统
要挂起系统,请执行:
# pm-suspend
或者
$ sudo pm-suspend
Linux命令休眠系统
要休眠系统,请执行:
# pm-hibernate
或者
$ sudo pm-hibernate
或者
$ systemctl hibernate
一定时间后如何使计算机进入睡眠状态?
您可以使用at命令,如下所示,让笔记本电脑在30分钟后进入睡眠状态:
echo 'pm-suspend' | at now + 30 minutes
或者
echo 'systemctl suspend' | at now + 30 minutes
挂起系统后如何添加挂钩(或所谓的脚本)?
您可以将脚本放置在以下目录中。
它们在挂起和恢复时执行:
/etc/pm/sleep.d
包括Debian在内的几乎所有发行版都首先在这里运行脚本。/usr/lib/pm-utils/sleep.d
默认的Debian位置。
简而言之,如果在挂起/恢复时需要运行自定义命令,则应仅将自定义脚本放在/etc/pm/sleep.d/目录中。
样例Shell脚本
#!/bin/sh # If we are running NetworkManager, tell it we are going to sleep. # TODO: Make NetworkManager smarter about how to handle sleep/resume # If we are asleep for less time than it takes for TCP to reset a # connection, and we are assigned the same IP on resume, we should # not break established connections. Apple can do this, and it is # rather nifty. . "${PM_FUNCTIONS}" suspend_nm() { # Tell NetworkManager to shut down networking dbus_send --print-reply --system \ --dest=org.freedesktop.NetworkManager \ /org/freedesktop/NetworkManager \ org.freedesktop.NetworkManager.sleep 2>&1 > /dev/null } resume_nm() { # Wake up NetworkManager and make it do a new connection dbus_send --print-reply --system \ --dest=org.freedesktop.NetworkManager \ /org/freedesktop/NetworkManager \ org.freedesktop.NetworkManager.wake 2>&1 > /dev/null } case "" in hibernate|suspend) suspend_nm ;; thaw|resume) resume_nm ;; *) exit $NA ;; esac