我正在对未安装的 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
。然后,在调用时使用它fg
。fg
如果后台只有一项作业,您也可以不带参数地调用。
我不熟悉,fsck.ext4
但-t
您使用的开关似乎可以打印统计信息(编辑:该-C 0
选项也是如此)。通过将进程带回前台,您将得到此输出。但是,如果fsck.ext4
没有以详细选项启动,那么它不会打印任何内容,无论它是在前台还是在后台。在这种情况下,您可以使用 来检查它是否仍在运行ps
。
完成后,只需按Ctrl+Z即可再次在后台发送该进程。但要小心,如果您的进程附加到终端(即,如果程序属于终端的控制会话),则关闭终端将向SIGHUP
您的进程发送 a ,并杀死它(除非您设置了fsck.ext4
ignore SIGHUP
s)。