다음 두 명령(구문 변경 사항을 강조 표시하도록 정렬됨)은 명령이 셸에 전달되는 방식만 다르며 다양한 Linux 기반 운영 체제(debian, centos, opensuse 등)를 실행하는 수신기에서 잘 작동합니다.
$ ssh u@h "nohup bash -c 'echo testing' -- >/path/out 2>/path/err &"
$ echo 'echo testing' \
| ssh u@h "nohup bash -s -- >/path/out 2>/path/err &"
뚜렷한 이유 없이 bash -s
수신 노드( h
)가 OS X(10.9.5)를 실행 중일 때 두 번째(사용)가 실패합니다. 리디렉션된 스트림에 대한 파일이 생성되지만 아무 것도 기록되지 않습니다 stdout
. 명령이 백그라운드로 분기되지 않으면 다음 bash -s
구문이 OS X 수신기에 작동합니다.
$ echo 'echo testing' \
| ssh u@h "nohup bash -s -- >/path/out 2>/path/err"
nohup
문제가 Mac에서 발생하는지, 아니면 일관성 없는 동작으로 인해 둘 사이의 상호 작용에서 발생하는지 알 수 없습니다 bash -s
. 수신측에서는 중단된 프로세스가 표시되지 않으며 세션 연결이 끊어지면 전송된 작업이 ssh
사라지는 것 같습니다 ssh
. disown
일을 하는 것도 도움이 되지 않습니다. bash
수신 OS X 시스템의 버전은 입니다 GNU bash, version 3.2.53(1)-release (x86_64-apple-darwin13)
. nohup
모든 /commands가 작동하는 수신 Linux 시스템은 ssh
4(4.2+)의 다양한 버전을 사용하고 있습니다.bash
수신기 구성을 변경하면 이 문제를 해결할 수 있습니까 ssh
?