터미널에서 애플리케이션을 시작한 후 자동으로 애플리케이션을 거부하려면 어떻게 해야 합니까?
예: 터미널을 시작하고 실행하면 firefox
애플리케이션이 시작되지만 터미널을 닫으면 Firefox도 닫힙니다. 터미널에서 시작된 응용 프로그램이 실수로 닫히는 것을 방지하려면 먼저 ampersant: 를 사용하여 해당 응용 프로그램을 백그라운드에 배치하면 firefox &
해당 터미널 프롬프트를 사용할 수 있는 기능도 복원됩니다. 다음으로, 애플리케이션의 프로세스 ID(PID)를 사용하여 동일한 터미널에서 애플리케이션의 소유권을 가져올 수 있습니다. 아래 예를 참조하세요.
$ firefox &
$ ps | grep firefox
14917 pts/6 00:00:00 firefox
$ disown 14917
이제 애플리케이션은 사용 중인 터미널과 독립적으로 실행되며, 터미널을 닫아도 더 이상 애플리케이션이 종료되지 않습니다.
하지만 애플리케이션이 실행될 때마다 이 작업을 자동으로 수행하는 방법은 무엇입니까?
답변1
가장 간단한 방법은 다음을 실행하는 것입니다.
daemon firefox
이렇게 하면 터미널 자체를 계속 사용/닫을 수 있습니다.
답변2
편집하다:더 나은 대답IV에서 제공합니다.
이를 자동화하려면 bash 별칭을 사용할 수 있습니다. 홈 디렉터리의 .bash_aliases 파일에 다음 줄을 추가하면 my_application
터미널에서 모든 애플리케이션을 실행하면서 자동으로 백그라운드에 배치한 다음 해당 터미널에서 소유를 취소할 수 있습니다 s my_application
.
# start programs from shell but immediately disown them
startAndDisown() {
$1 & disown $!
}
alias s=startAndDisown
$!
마지막 비동기 작업의 PID가 자동으로 반환됩니다 .
답변3
firefox & disown $!
나에게는 효과가 없었지만 나에게는 효과가 있었던 유사한 솔루션은 다음과 같습니다.firefox&;disown
관련되지 않은 또 다른 해결책은 disown
GNU Screen을 사용하는 것입니다. 터미널 창을 닫아도 터미널 세션은 유지됩니다. 그러나 그 유용성은 터미널을 어떻게 사용하느냐에 따라 달라집니다. 한 번에 하나의 터미널 창만 사용하는 경우 이는 훌륭한 솔루션입니다. 더 많은 터미널을 사용하면 더 적습니다. 자주 사용하는 패키지 관리자를 사용하여 화면을 설치한 다음 매번 터미널 유형을 엽니다 screen -r
(또는 screen
화면 세션이 실행되고 있지 않은 경우). 이렇게 하면 터미널을 닫는 것에 대해 걱정할 필요가 없습니다. 이것은 매우 틈새 솔루션이지만 귀하에게 도움이 될 수 있습니다.