백그라운드에서 프로그램을 실행할 때 nohup과 화면이 작동하지 않습니까?

백그라운드에서 프로그램을 실행할 때 nohup과 화면이 작동하지 않습니까?

이유는 모르겠지만 screen서버에서 실행 중인 명령이 저절로 중지됩니다. 그래서 nohup. 예:

nohup bzcat a.bz

하지만 실행하면 nohup나에게

nohup: ignoring input and appending output to `nohup.out'

또한 재개하기 위해 fg다음을 실행합니다.

-bash: fg: current: no such job

답변1

보낸 메시지는 nohup완벽하게 괜찮습니다. 단지 그것이 무엇을 하고 있는지 설명하는 것뿐입니다. nohup을 사용하여 프로그램을 실행하면 더 이상 터미널에 입력한 내용이 사용되지 않으며 터미널에 아무 것도 출력되지 않습니다. nohup프로그램의 출력을 nohup.out.

그리고 프로그램을 백그라운드에서 실행하는 것과는 매우 다릅니다 nohup(백그라운드에서 실행하는 것은 bzcat a.bz &). 프로그램이 백그라운드에서 실행될 때 터미널의 입력은 무시됩니다. (포그라운드에서 실행 중인 프로그램만이 터미널에 입력한 내용을 사용할 수 있습니다. 이것이 바로 "포그라운드" 프로세스라고 불리는 이유입니다. 실제로 상호 작용하는 프로세스이기 때문입니다. with) 그러나 터미널로 출력됩니다. nohup 모드와 백그라운드에서 모두 프로그램을 실행할 수 있습니다. 실제로 일반적으로 nohup사용되는 방식입니다. 프로그램 이지만 nohup백그라운드에서 실행하지 않으면 fg실제로는 백그라운드가 아니기 때문에 호출할 수 없습니다. 터미널로 출력되지 않습니다.

nohup신호를 무시하는 모드에서 프로그램을 실행할 수 있습니다 HUP. 터미널은 HUP터미널을 닫을 때 자동으로 신호를 보냅니다 . 따라서 nohup 모드에서 백그라운드로 실행 중인 프로그램은 해당 프로그램을 시작한 터미널을 닫아도 중지되지 않습니다.

관련 정보