SSH를 통해 원격 서버의 백그라운드에서 프로그램을 시작하려고 하는데 프로그램이 있는 디렉터리에서 실행해야 합니다.
나는 다음을 시도합니다
ssh -q user@server 'cd directory && command > /dev/null 2>&1 &'
하지만 이로 인해 오류가 발생합니다.
Ambiguous output redirect.
/dev/null
그렇지 않으면 ssh 호출이 완료되지 않기 때문에 출력을 다음으로 리디렉션합니다 .
{}
따옴표를 사용 하거나 사용하지 않고 명령을 래핑하려고 시도했지만 ()
동일한 오류가 발생합니다.
이 문제를 어떻게 해결할 수 있나요?
답변1
상술 한 바와 같이댓글에서, 원격 사용자의 로그인 쉘은 csh
또는 입니다 tcsh
. 이러한 쉘은 다양한 POSIX 쉘과 매우 다른 구문, 특히 리디렉션 구문을 가지고 있습니다.
/dev/null
표준 출력 및 표준 오류를 이러한 쉘로 리디렉션하려면 다음을 사용하십시오 >& /dev/null
.
ssh -q user@server 'cd directory && command >& /dev/null &'
또는 POSIX 셸을 명시적으로 호출하여 다음 명령을 실행합니다.
ssh -q user@server 'sh -c "cd directory && command >/dev/null 2>&1" &'