작업을 중지하지 않고 백그라운드로 작업을 보내는 방법은 무엇입니까?


10

Ctrl + z는 현재 작업을 백그라운드로 보내지 만 중지합니다.

그리고 중단 된 작업을 재개하는 방법은 무엇입니까?

답변:


17

"bg"를 실행하여 백그라운드에서 실행할 수 있습니다.

"fg"는 그것을 전경으로 옮깁니다.

bg 및 fg는 PID 대신 작업 번호를 사용하므로 한 번에 여러 작업을 실행하는 경우 "jobs"명령을 사용하여 작업 번호를 얻으십시오.


8

명령 줄에 "&"를 사용하여 백그라운드 작업으로 프로그램을 시작할 수도 있습니다.

예 :

myprogram &

출력 (stdout 및 stderr 모두)은 여전히 ​​현재 tty로 이동하므로 일반적으로 / dev / null 또는 로그 파일로 리디렉션하는 것이 좋습니다.

myprogram> ~ / program.log 2> & 1 &

두 가지 예에서 다른 작업과 마찬가지로 백그라운드 작업이므로 'fg'를 사용하여 포 그라운드로 다시 가져올 수 있습니다 (그러나 출력을 리디렉션하면 많이 보지 못합니다).


5

bash에서 "bg"를 입력하면 입력이 필요하지 않을 때까지 백그라운드로 작업이 배치됩니다. 도움이되지 않을 수있는 STDERR 및 STDOUT으로 계속 출력됩니다. "fg"를 입력하여 작업을 다시 포 그라운드로 가져올 수 있습니다.

[adjuster@mx02 ~]$ cp ~/crap/* ~/crap2 
(Ctrl-Z)
[1]+  Stopped                cp ~/crap ~/crap2 

[adjuster@mx02 ~]$ cp ~/crap3/* ~/crap4
(Ctrl-Z)
[2]+  Stopped                cp ~/crap3/* ~/crap

[adjuster@mx02 ~]$ jobs
[1]+  Stopped                cp ~/crap ~/crap2 
[2]+  Stopped                cp ~/crap3/* ~/crap

[adjuster@mx02 ~]$ bg 1
[1]- cp ~/crap ~/crap2 &
[1]-  Exit 1                  cp ~/crap ~/crap2 

[adjuster@mx02 ~]$ fg 2
[adjuster@mx02 ~]$ 

그래서 그것은 긴 복사 작업을 시작하고 일시 중단하고, 두 번째 긴 복사 작업을 시작하고 일시 중단 한 다음 첫 번째 복사 작업을 백그라운드에 넣고 실행시킨 다음 첫 번째 복사 작업이 종료되었습니다. 그런 다음 마지막 복사 작업을 포 그라운드로 넣고 끝냅니다.


bg 1그리고 fg 1나를 위해 일을하지 않지만, bg %1fg %1않습니다.
Alexej Magura

4

nohup task.sh &

백그라운드에서 실행되고 출력은 현재 디렉토리의 nohup.out으로 이동합니다. 로그 아웃 할 때 계속 실행됩니다.


2

또 다른 옵션은 우수한 화면 유틸리티로, 터미널을 열어 둘 필요없이 동시에 많은 프로세스를 실행하는 데 사용할 수 있습니다. 또한 bg 및 fg보다 훨씬 쉬운 상호 작용이 가능합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.