기본 작업 제어: 작업 중지, 스택에 작업 추가 및 "fg"

기본 작업 제어: 작업 중지, 스택에 작업 추가 및 "fg"

작업 제어는 아마도 제가 Linux에서 가장 좋아하는 부분일 것입니다. 나는 컴퓨터를 한 번에 며칠 동안 사용할 수 없게 만드는 계산적으로 까다로운 프로세스를 시작하는 경우가 종종 있으며 , 특정 기간 동안 해당 특정 컴퓨터를 사용해야 하는 경우를 대비하여 CTRL-Z항상 감사하게 생각합니다 .fg

그러나 때로는 작업 스택에 작업을 삽입하고 싶을 때가 있습니다. 나는 무엇을 해야할지 전혀 몰랐습니다.

나는 그것을 사용하고 있습니다 bash.

다음과 같이 보일 수 있습니다:

$ ./reallybigjob
^Z
[1]+  Stopped                 reallybigjob
$ (stuff I don't know) && ./otherbigjob
$ fg

답변1

작업 스택이 없으며 각 작업은 독립적으로 처리됩니다.

넌 할 수있어 fg; otherbigjob. 그러면 명령 실행이 중지 reallybigjob되면 다시 전경으로 돌아 옵니다 . 이는 첫 번째 작업 이후 실행을 대기열에 넣는 것과 다릅니다 . +를 누르면 즉시 시작됩니다 . +를 누르면 죽습니다 . 백그라운드에 머물면서 그 이후에 다른 작업을 대기열에 넣을 수 없습니다 .fgotherbigjobotherbigjobCtrlZotherbigjobCtrlCreallybigjobotherbigjob

작업이 CPU를 많이 사용하는 경우 이 batch유틸리티를 사용하면 CPU가 사용 중이지 않을 때 다음 작업을 예약할 수 있습니다.

답변2

백그라운드에서 여러 작업을 실행하거나 일시 중지할 수 있습니다.

$ ./reallybigjob &
[1] 873
$ ./otherbigjob &
[2] 875
$ jobs
[1]-  Running                 ./reallybigjob &
[2]+  Running                 ./otherbigjob &
$ fg 1
./reallybigjob
^Z
[1]+  Stopped                 ./reallybigjob
$ fg 2
./otherbigjob
^Z
[2]+  Stopped                 ./otherbigjob
$ jobs
[1]-  Stopped                 ./reallybigjob
[2]+  Stopped                 ./otherbigjob
$bg 1
[1]- ./reallybigjob &
$ jobs
[1]-  Running                 ./reallybigjob &
[2]+  Stopped                 ./otherbigjob
$

관련 정보