백그라운드 작업 실시간 모니터링

백그라운드 작업 실시간 모니터링

나는 다음과 같은 명령을 실행했습니다 nohup some_command &. 이제 이 명령은 백그라운드에서 실행됩니다. 명령으로 볼 수 있습니다 jobs.

출력 예:

[1]+  Running                 nohup some_command &

어떻게든 가질 수 있을까?살다다음과 유사한 명령 의 jobs상태 표현top일하다? 그러면 nohup some_command &완료되면 목록에서 즉시 사라지나요?

답변1

프롬프트에 입력 중이거나 다른 작업이 포그라운드에 있는 동안에도 작업 완료 알림을 즉시 인쇄하고 싶다면 를 실행하세요 set -o notify.

전경 명령이 현재 셸의 백그라운드 작업 상태를 표시하도록 하려면 jobs루프에서 실행할 수 있습니다. 전체 화면 모드에서는 쉽게 수행할 수 있습니다.

tput clear
jobs
while sleep 1; do
  tput clear
  jobs
done

화면을 지우지 않고 프롬프트 아래에 목록을 표시하려면 처음에 커서 위치를 저장하고 실행할 때마다 복원하십시오.

tput sc
jobs
while sleep 1; do
  tput rc
  jobs
done

답변2

쉘 함수를 생성할 수 있습니다:

myjobwatch() { while true; do jobs; sleep 2; clear; done; }

그럼 그냥 실행myjobwatch

관련 정보