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

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

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

중지된 작업을 재개하는 방법은 무엇입니까?

답변1

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

"fg"를 누르면 전경으로 이동합니다.

bg 및 fg는 PID 대신 작업 번호를 사용하므로 한 번에 여러 작업을 실행하는 경우 "jobs" 명령을 사용하여 작업 번호를 가져옵니다.

답변2

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

예를 들어

내 프로그램 &

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

내 프로그램 > ~/program.log 2>&1 &

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

답변3

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 ~]$ 

즉, 긴 복사 작업을 시작하고 일시 중단하고, 두 번째 긴 복사 작업을 시작하고 일시 중단한 다음, 첫 번째 복사 작업을 백그라운드로 두고 실행한 후 첫 번째 복사 작업을 종료하는 것입니다. 그런 다음 마지막 복사 작업을 전경에 놓고 완료되도록 합니다.

답변4

또 다른 옵션은 우수합니다.화면터미널을 열어두지 않고도 동시에 많은 프로세스를 실행하는 데 사용할 수 있는 유틸리티입니다. 또한 bg 및 fg보다 훨씬 쉽게 상호 작용할 수 있습니다.

관련 정보