SSH 인스턴스가 종료되어도 SSH 내에서 실행되는 셸 스크립트가 계속 실행될 수 있나요? [복사]

SSH 인스턴스가 종료되어도 SSH 내에서 실행되는 셸 스크립트가 계속 실행될 수 있나요? [복사]

원격 서버에서 시간이 오래 걸리는 일괄 작업을 실행하는 쉘 스크립트를 작성하려고 합니다. SSH를 통해 스크립트를 실행하겠습니다.

문제는 저녁에 스크립트 작성을 시작하고 다음날 아침 결과를 수집할 계획이라는 것입니다. 일괄 처리 중에는 필요하지 않기 때문에 로컬 컴퓨터를 밤새도록 실행하고 싶지 않습니다. 그렇다면 SSH 연결을 닫고 원격 서버에서 쉘 스크립트를 계속 실행하는 방법이 있습니까?

답변1

한 가지 방법은 nohup을 사용하는 것입니다. 예는 다음과 같습니다.

nohup your_prog.sh &

your_prog.sh그러면 백그라운드에서 호출된 프로그램이 실행되고 &모든 출력이 nohup.out.

이제 다음 명령을 사용하여 백그라운드에서 실행되는 프로그램의 출력을 모니터링할 수 있습니다.

tail -f nohup.out

이 명령으로 시작된 프로그램은 명시적 명령으로 다시 시작되거나 종료될 때까지(또는 프로그램이 종료될 때까지) nohup계속 실행됩니다 .kill

답변2

예, 백그라운드에서 스크립트 실행을 시작하면 계속 실행됩니다. 또는 명령줄에서 명령을 사용하여 스크립트를 시작할 수 있습니다. 예를 들어 다음과 같이 말할 수 있습니다.

ssh hostname -l loginname command

그러면 효과가 있을 것입니다.

관련 정보