linux中暂停进程并稍后恢复它

2022-06-02 18:31:03 浏览数 (1)

想象一下这个场景。你运行一个程序。但是,你不知道需要多长时间才能完成。该过程会持续运行几分钟。你不能再等太久了,因为其他一些重要的程序正在排队等候。你有没有遇到过这样的情况?不用担心!我刚刚发现了一个简单的技巧来暂停一个进程并稍后在 Linux 中恢复它。

我要做的只是暂停当前正在运行的进程,做一些其他重要的任务,然后在所有其他进程完成后恢复停止的进程。当你有较少的 RAM 或处理器来执行多任务时,这可能非常有用。你可以随时暂停正在运行的进程,并在以后恢复它们,而无需重新启动它们。现在让我们继续学习暂停或暂停正在运行的进程并稍后在 Linux 和类 Unix 操作系统中恢复它。

在 Linux 中暂停进程并稍后恢复它

这绝对是一件容易的事!你所要做的就是找到PID(进程ID)并使用psps aux命令,然后暂停它,最后使用kill命令恢复它。

让我们看一个例子。我将使用以下wget命令下载 Ubuntu 18.04 网络引导映像:

代码语言:javascript复制
$ wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso &

在这里,&symbol 会将正在运行的任务(即wget)移动到后台而不关闭它。

现在,我想暂停此任务并运行其他重要任务。为此,首先使用命令查找正在运行的进程:

$ ps -aux | grep wget

代码语言:javascript复制
root     10901  0.0  0.0 151020  2524 ?        R    21:42   0:00 wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso

如你所见, wget 命令的 PID 是16143

让我们现在停止这个过程。为此,请从终端运行以下命令:

$ kill -STOP 10901

使用命令验证进程是否已停止:

代码语言:javascript复制
$ ps -aux | grep wget
root     10901  0.0  0.0 151020  2524 ?        T    21:42   0:00 wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso

wget过程已停止(T表示终止)。

继续做其他重要的任务。完成所有任务后,使用命令恢复停止的进程:

$ kill -CONT 10901

要验证进程是否正在运行,请运行ps命令。

代码语言:javascript复制
$ ps -aux | grep wget
root     10901  0.0  0.0 151020  2524 ?        R    21:42   0:00 wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso

我们之前停止的过程已经恢复!

就像我已经说过的,如果你不能在 RAM 或 CPU 速度较低的系统中执行多任务,这将很有帮助。

首先,使用 ps 命令找到正在运行的进程的 pid。然后,使用 暂停它kill -STOP <PID>,然后休眠你的系统。恢复你的系统并使用命令恢复停止的进程kill -CONT <PID>

重新启动我的系统后它会工作吗?

重新启动系统后,进程的 PID 会自动更改。它们不会在重新启动后持续存在。在这种情况下,你可以暂停或休眠整个系统,并在准备好时恢复它们。

0 人点赞