![터미널을 닫은 후에도 지속되는 명령을 실행하는 방법은 무엇입니까?](https://linux55.com/image/42241/%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%84%20%EB%8B%AB%EC%9D%80%20%ED%9B%84%EC%97%90%EB%8F%84%20%EC%A7%80%EC%86%8D%EB%90%98%EB%8A%94%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
때로는 프로세스를 시작하고 잊어버리고 싶을 때가 있습니다. 다음과 같이 명령줄에서 시작하면:
redshift
터미널을 닫을 수 없거나 프로세스가 종료됩니다. 프로세스를 종료하지 않고 터미널을 닫을 수 있는 방식으로 명령을 실행할 수 있습니까?
답변1
다음 2가지 중 하나가 작동해야 합니다.
$ nohup redshift &
또는
$ redshift &
$ disown
작동 방식에 대한 자세한 내용은 아래를 참조하세요.
nohup, disown, &의 차이점(댓글도 꼭 읽어보세요)
답변2
귀하의 프로그램이이미 실행 중Ctrl-Z
를 사용하여 일시 중지 하고 백그라운드로 끌어온 bg
후 disown
다음과 같이 사용할 수 있습니다 .
$ sleep 1000
^Z
[1]+ Stopped sleep 1000
$ bg
$ disown
$ exit
답변3
@Steven D가 훌륭한 답변을 게시했습니다., 그러나 나는 이것이 좀 더 명확해질 것이라고 생각했습니다.
터미널이 종료될 때 프로세스가 종료되는 이유는 시작한 프로세스가 터미널의 하위 프로세스이기 때문입니다. 터미널이 닫히면 이러한 하위 프로세스도 종료됩니다. pstree
예를 들어 kate &
Konsole에서 실행할 때 다음을 사용하여 프로세스 트리를 볼 수 있습니다 .
init-+
├─konsole─┬─bash─┬─kate───2*[{kate}]
│ │ └─pstree
│ └─2*[{konsole}]
종료 시 프로세스가 분리되도록 하려면 kate
다음과 같이 명령과 함께 사용하십시오.konsole
konsole
nohup
nohup kate &
닫으면 konsole
다음 pstree
과 같이 표시됩니다.
init-+
|-kate---2*[{kate}]
그리고 kate
살아남을 것이다. :)
대안은 screen
// 를 사용하는 것입니다 tmux
. byobu
그러면 터미널과 관계없이 쉘이 계속 실행됩니다.
답변4
나는 선호한다:
(applicationName &)
예를 들어:
linux@linux-desktop:~$ (chromium-browser &)
명령을 입력할 때는 반드시 괄호를 사용하세요!