![백그라운드에서 프로그램을 실행할 때 nohup과 화면이 작동하지 않습니까?](https://rvso.com/image/31668/%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C%EC%97%90%EC%84%9C%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EB%95%8C%20nohup%EA%B3%BC%20%ED%99%94%EB%A9%B4%EC%9D%B4%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
이유는 모르겠지만 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 모드에서 백그라운드로 실행 중인 프로그램은 해당 프로그램을 시작한 터미널을 닫아도 중지되지 않습니다.