如果 Badblocks 在后台运行,我如何检查它的进度?

如果 Badblocks 在后台运行,我如何检查它的进度?

我正在对未安装的 USB3 驱动器运行驱动器检查:

sudo fsck.ext4 -cDfty -C 0 /dev/sda1 &

但是,我将其发送到后台并想检查其进度。它已经在 4 TB 驱动器上运行了 35 个小时。

有没有办法检查其进度?

答案1

首先,您应该检查您的进程是否仍然连接到您的终端。

$ ps -eo comm,tty | grep fsck

现在,如果您仍然可以在进程旁边看到 TTY 值,则仍然可以获得其输出(从此 TTY)。您可以使用 获取当前 TTY 的 ID tty。但是,如果您的进程有一个?next ,恐怕您将无法获得其输出(除非您使用类似的东西screen)。

fg如果您的进程仍然连接到正在运行的终端,您可以使用(当然在这个终端中)将该进程带回前台:

$ jobs
$ fg [job ID]

jobs将为您提供与正在运行的进程关联的 ID fsck.ext4。然后,在调用时使用它fgfg如果后台只有一项作业,您也可以不带参数地调用。

我不熟悉,fsck.ext4-t您使用的开关似乎可以打印统计信息(编辑:该-C 0选项也是如此)。通过将进程带回前台,您将得到此输出。但是,如果fsck.ext4没有以详细选项启动,那么它不会打印任何内容,无论它是在前台还是在后台。在这种情况下,您可以使用 来检查它是否仍在运行ps

完成后,只需按Ctrl+Z即可再次在后台发送该进程。但要小心,如果您的进程附加到终端(即,如果程序属于终端的控制会话),则关闭终端将向SIGHUP您的进程发送 a ,并杀死它(除非您设置了fsck.ext4ignore SIGHUPs)。

相关内容