Badblocks가 백그라운드에서 실행 중인 경우 진행 상황을 어떻게 확인할 수 있나요?

Badblocks가 백그라운드에서 실행 중인 경우 진행 상황을 어떻게 확인할 수 있나요?

마운트 해제된 USB3 드라이브에서 드라이브 검사를 실행 중입니다.

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

그런데 백그라운드로 보내서 진행상황을 확인하고 싶습니다. 4TB 드라이브에서 35시간 동안 실행되었습니다.

진행상황을 확인할 수 있는 방법이 있나요?

답변1

먼저 프로세스가 여전히 터미널에 연결되어 있는지 확인해야 합니다.

$ ps -eo comm,tty | grep fsck

이제 프로세스 옆에 TTY 값이 계속 표시되면 이 TTY에서 해당 출력을 계속 얻을 수 있습니다. 를 사용하여 현재 TTY의 ID를 얻을 수 있습니다 tty. 그러나 프로세스에 ?다음 프로세스가 있으면 해당 출력을 얻을 수 없습니다(유사한 것을 사용하지 않는 한 screen).

fg프로세스가 여전히 실행 중인 터미널에 연결되어 있는 경우 다음을 사용하여 프로세스를 다시 포그라운드로 가져올 수 있습니다(물론 이 터미널에서).

$ jobs
$ fg [job ID]

jobs실행 중인 프로세스와 관련된 ID를 제공합니다 fsck.ext4. 그런 다음 전화할 때 사용하세요 fg. fg백그라운드에 작업이 하나만 있는 경우 매개변수 없이 호출할 수도 있습니다.

나는 그것에 익숙하지 않지만 fsck.ext4당신 -t이 사용하고 있는 스위치는 통계를 인쇄하는 것 같습니다(편집: -C 0이 옵션도 마찬가지입니다). 프로세스를 다시 포그라운드로 가져오면 이 출력을 얻을 수 있습니다. 그러나 fsck.ext4verbose 옵션을 사용하여 실행하지 않으면 전경이든 배경이든 아무 것도 인쇄되지 않습니다. 이 경우 다음을 ps사용하여 아직 실행 중인지 확인할 수 있습니다.

Ctrl완료되면 +를 눌러 Z백그라운드에서 프로세스를 다시 보내세요. 그러나 프로세스가 터미널에 연결되어 있는 경우(즉, 프로그램이 터미널의 제어 세션에 속하는 경우) 터미널을 닫으면 SIGHUP프로세스에 a가 전송되어 프로세스가 종료됩니다( fsck.ext4ignore SIGHUPs를 설정하지 않은 경우).

관련 정보