ssh를 사용하여 원격 Unix 시스템에서 명령을 실행하고 명령이 완료되기 전에 종료하려면 어떻게해야합니까? 종료하려면 어떻게해야합니까? 예를 들어 내가

ssh를 사용하여 Unix 머신에서 명령을 실행하고 명령이 완료되기 전에 종료하려면 어떻게해야합니까?

예를 들어 내가 입력하면

ssh localhost 'sleep 60 &'

수면이 백그라운드에서 실행 되더라도 수면이 완료 될 때까지 ssh가 터미널에서 정지합니다.



답변

SSH에는 -f 스위치가있어 클라이언트에서 nohup을 사용하는 것과 정확히 동일하지만 ssh가 암호를 요구할 수 있습니다. 다음과 같이 사용하십시오.

ssh localhost -f 'command'

그러나 : SSH는 여전히 백그라운드에서 작동하므로 서버의 명령이 완료되기 전에 클라이언트를 종료하면 중단됩니다. 명령을 실행 한 후 ssh 연결을 닫으려면 서버 측에서 screen을 사용할 수 있습니다.

ssh localhost -f 'screen -d -m sleep 60'


답변

nohup, stdout / stderr 리디렉션을 사용하고 백그라운드에서 명령을 실행하십시오.

 nohup ssh localhost 'sleep 60' >/dev/null 2>/dev/null &

편집 : 또는 ssh의 -f 매개 변수를 사용하는 것이 더 좋습니다.

ssh -f localhost 'sleep 60'


답변

또는을 사용하여 로그인 한 후 나중에 다시 방문하여 진행 상황 또는 출력을 확인하려면 ssh시작 screen하십시오.


답변