
업무 목적으로 원격 Linux 셸에 액세스할 수 있습니다. .NET을 사용하여 백그라운드에서 Python 스크립트를 계속 실행했습니다 nohup
.
이제 세션을 종료하려면 사용 logout
과 exit
명령의 차이점은 무엇입니까? 이 두 경우 모두 내 스크립트가 계속 실행됩니까?
답변1
logout
쉘의 내부 명령입니다. 따라서 일반적으로 대답은 쉘에 따라 다릅니다. 에서 man bash
:
logout
– 로그인 쉘을 종료합니다.
에서 man zsh
:
logout [ n ]
– 로그인 쉘에서만 작동한다는 점을 제외하면 종료와 동일합니다.
따라서 완전히 동일하지만 로그아웃은 로그인이 아닌 쉘에 대한 작동을 거부합니다. 로그인 쉘이 무엇인지는 매뉴얼 페이지에서 읽을 수 있습니다.
답변2
로컬 터미널에서 두 가지를 모두 시도해 보세요. "로그아웃"을 사용하려면 "로그인"이 필요합니다. 터미널에서는 기본적으로 로그인으로 쉘을 시작하지 않으므로 터미널을 닫으려면 "exit"를 사용해야 합니다. "로그인 쉘"이 아닙니다.
원격 SSH 쉘에서는 "로그인 쉘"을 사용하고 있기 때문에 무관심합니다. nohub 또는 이와 유사한 것을 사용하면 실제 셸에서 명령을 "분리"하므로 셸을 닫아도 프로세스가 종료되지 않습니다.