ors*_*iro 17 hibernate process
示例用例:
我在打开几个选项卡的情况下运行 Chromium,并决定在接下来的 20 分钟内不需要访问该应用程序。为了节省笔记本电脑的电池时间,我想在不必关闭应用程序的情况下休眠(冻结)Chromium(重新打开和重新加载所有选项卡需要时间,我希望通过休眠来节省时间)。
Byt*_*der 23
您可以使用该killall命令向SIGSTOP与给定名称匹配的所有进程发送信号以冻结它们,然后SIGCONT以相同的方式再次发送以解冻它们。
首先使用pgrep -l SEARCH_PATTERN以下命令找出进程名称:
$ pgrep -l chrom
13010 chromium-browse
13036 chromium-browse
13038 chromium-browse
13153 chromium-browse
13166 chromium-browse
13169 chromium-browse
13175 chromium-browse
13187 chromium-browse
13195 chromium-browse
13206 chromium-browse
Run Code Online (Sandbox Code Playgroud)
请注意,它会修剪长名称,因此r缺少 。但这不是问题,因为您可以使用Tab完成来输入进程名称,这将自动完成它。
然后你将SIGSTOP信号发送到所有这样命名的进程chromium-browser:
$ killall -s STOP chromium-browser
Run Code Online (Sandbox Code Playgroud)
Chromium 窗口将变灰,就好像它没有响应一样。嗯,它真的变得没有反应了,所以这是意料之中的。您现在无法以任何方式与窗口交互(菜单栏和最小化等除外,它们由窗口管理器而不是应用程序本身处理)。但是来自点击按钮等的事件仍然会生成并添加到应用程序的事件队列中,因此当您再次解冻应用程序时,它们都会被立即处理!
您只需运行以下命令即可再次解冻应用程序,该命令将SIGCONT信号发送到指定的进程:
$ killall -s CONT chromium-browser
Run Code Online (Sandbox Code Playgroud)
有时,以这种方式冻结应用程序可能会导致其崩溃,因此请确保在冻结应用程序之前保存重要的内容。
在极少数情况下,甚至桌面环境/窗口管理器/其他任何东西也可能变得无响应。在这种情况下,您必须通过 TTY 解冻冻结的应用程序:
按Ctrl+ Alt+F1切换到 TTY1。系统会要求您登录,因此请输入您的用户名和密码。然后以与通过普通终端模拟器运行应用程序相同的方式运行该命令以解冻应用程序。之后使用切换回桌面(TTY7)Ctrl+ Alt+ F7,你应该再罚款。
要暂停,请尝试:
killall -SIGTSTP chromium-browser
如果这不起作用,请尝试强制版本:killall -SIGSTOP chromium-browser.
无论哪种方式,继续使用killall -SIGCONT chromium-browser. 我尝试使用 Firefox,它奏效了。但是请注意,如果您在 Chromium 挂起时单击按钮,它会在您继续执行后执行该内容。