nohup은 SSH 세션에서 다음 프롬프트를 표시하지 않습니다.

Aug 20 2020

원격 Ubuntu 시스템에서 SSH를 통해 연결되었다고 가정합니다. nohup잠재적 연결이 끊어지는 경우를 사용하여 스크립트를 실행 하고 로그를 파일로 리디렉션하고 싶습니다 . 내가 실행하는 명령은

nohup bash myscript.sh > log.txt &

그런 다음 터미널은 스크립트의 PID와 메시지를 인쇄합니다.

nohup은 입력을 무시하고 stderr을 stdout으로 리디렉션합니다.

커서가 거기에서 멈추고 Ctrl+로 SSH 세션을 종료 D하고 다시 로그인 하지 않으면 다른 명령을 실행할 수 없습니다 . SSH 세션을 열어두고 다시 로그인 할 필요없이 다음 터미널 프롬프트로 진행하는 것을 선호합니다. 이것을 달성하는 방법이 있습니까?

답변

1 roaima Aug 21 2020 at 03:39

이 명령은 예상대로 백그라운드에서 실행됩니다. 그러나이 특별한 경우에는 출력 메시지가 쉘 프롬프트 후에 부분적으로 기록되는 경쟁 조건이 있습니다.

시각적 결과는 셸 프롬프트가 nohup메시지 앞에 나타나 거나 완전히 덮어 쓰여진 것입니다.

실제 결과는 쉘이 프롬프트를 작성했기 때문에 다음 명령을 수행 할 준비가 된 것입니다. Enter를 눌러 새 프롬프트를 생성하거나 어쨌든 다음 명령을 입력 할 수 있습니다.