작업 제어는 아마도 제가 Linux에서 가장 좋아하는 부분일 것입니다. 나는 컴퓨터를 한 번에 며칠 동안 사용할 수 없게 만드는 계산적으로 까다로운 프로세스를 시작하는 경우가 종종 있으며 , 특정 기간 동안 해당 특정 컴퓨터를 사용해야 하는 경우를 대비하여 CTRL-Z
항상 감사하게 생각합니다 .fg
그러나 때로는 작업 스택에 작업을 삽입하고 싶을 때가 있습니다. 나는 무엇을 해야할지 전혀 몰랐습니다.
나는 그것을 사용하고 있습니다 bash
.
다음과 같이 보일 수 있습니다:
$ ./reallybigjob
^Z
[1]+ Stopped reallybigjob
$ (stuff I don't know) && ./otherbigjob
$ fg
답변1
작업 스택이 없으며 각 작업은 독립적으로 처리됩니다.
넌 할 수있어 fg; otherbigjob
. 그러면 명령 실행이 중지 reallybigjob
되면 다시 전경으로 돌아 옵니다 . 이는 첫 번째 작업 이후 실행을 대기열에 넣는 것과 다릅니다 . +를 누르면 즉시 시작됩니다 . +를 누르면 죽습니다 . 백그라운드에 머물면서 그 이후에 다른 작업을 대기열에 넣을 수 없습니다 .fg
otherbigjob
otherbigjob
CtrlZotherbigjob
CtrlCreallybigjob
otherbigjob
작업이 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
$