![터미널에서 GUI 프로그램을 시작하고 시작한 후 터미널을 닫으려면 어떻게 해야 합니까? [복사]](https://linux55.com/image/173388/%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%20GUI%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%84%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B3%A0%20%EC%8B%9C%EC%9E%91%ED%95%9C%20%ED%9B%84%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%84%20%EB%8B%AB%EC%9C%BC%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
예를 들어 저는 터미널에서 GUI 프로그램을 시작하는 것을 좋아합니다 emacs myfile.txt
. 하지만 그렇게 하면 프로세스와 함께 터미널 창이 열려 있으므로 이제 추적할 수 있는 두 개의 창이 있습니다. 터미널 창을 닫으면 GUI 프로그램이 닫힙니다.
실행할 수 있다는 것을 알고 있습니다 exec cmd
. cmd
실행하려는 명령이 어디에 있는지 확인한 다음 터미널 창을 닫습니다.뒤쪽에프로그램이 완료되었습니다. 그런데 명령 실행 후 터미널 창을 닫고 싶습니다발표. 이를 수행할 수 있는 방법이 있습니까?
답변1
이 함수를 다음에 추가할 수 있습니다 ~/.bashrc
.
openclose() {
"$@" &
disown
exit
}
새 터미널(또는 )을 열고 실행하여 source ~/.bashrc
테스트해 보세요 .
openclose emacs myfile.txt
"$@" &
이 명령을 백그라운드에서 실행하세요.disown
셸에서 백그라운드 프로세스를 제거하므로(help disown
및man bash
, 신호 섹션 참조) 셸이 닫혀도 프로세스가 여전히 존재합니다.exit
쉘을 종료하십시오.