SSH를 닫을 때 SSH 백그라운드 작업 / 작업 계속


27

나는 여기 와 같은 질문이 있지만 그 너머에도 있습니다.

SSH 연결을 로그 아웃 / 종료하면 프로그램이 백그라운드에서 실행되고 있어야합니다. 종료하기 전에 백그라운드 실행 작업을 입력 bg하고 jobs확인하지만 SSH를 종료 한 후 프로그램이 실행되지 않고 SSH 창을 닫으면 닫힙니다.

SSH 창을 닫은 후에도 프로그램을 계속 실행하려면 어떻게해야합니까? 나는 사용 nohup screen하지만 작동하지 않거나 무언가를 놓치고 있습니까?


슈퍼 유저에 오신 것을 환영합니다! 질문에 답하지 마십시오. 질문에 답변하기 버튼을 사용하여 (약 7 시간 후) 아래에 답변으로 게시하십시오 . 고맙습니다. (또한 <br/>게시물 에 s 를 추가 할 필요는 없습니다. 필요에 따라 단락을 작성하십시오. 단락을 작성하는 동안 적절한 대문자를 사용하십시오. 게시물을 더 쉽게 읽을 수 있습니다.)
slhck

BTW 더 사용할 필요가 없습니다 bg또는 nohup사용하는 경우 screen. 또한 이 질문 은 관련이 있습니다.
방금 검색 :

이 스레드를 확인하십시오 @ stack overflow stackoverflow.com/questions/285015/…
Ashildr

답변:


46

당신이 사용하는 경우 screen당신이 필요 분리CTRL+A+ D당신이 종료하기 전에 ssh.

또는 화면으로 직접 프로세스를 실행하려는 경우

screen -dmSL [session name] [commands]
  • -d 스크린 세션을 시작하고 즉시 분리
  • -m 새로운 스크린 세션을 생성
  • -S 세션 이름을 지정할 수 있습니다
  • -L 에 로깅을 켭니다 ~/screenlog.0

예:

screen -dmSL workstuff myscript.sh

그러면 다음 중 하나를 수행 할 수 있습니다.

나중에 사용하여 다시 시작 screen -x workstuff

또는

로그 파일을 확인하십시오 less -r ~/screenlog.0


14

사용하십시오 tmux. screen아직 개발 중인지 조차 확실하지 않습니다 . 그것은 선호하는 일이지만,를 사용하는 사람으로서 tmux약 5 분 안에 설정되어 완벽하게 작동했다고 증언 할 수 있습니다.

데비안 기반 시스템 (원격 컴퓨터)에서 :

sudo apt-get install tmux

그런 다음 들어가서 들어가서 tmux필요한 프로세스를 실행하고 Ctrl+를 B누른 다음 D(tmux 세션을 종료하십시오). 그런 다음 SSH에서 로그 아웃 할 수 있습니다.

다시 돌아와서 확인해야 할 경우 SSH를 시작하고을 입력하십시오 tmux attach. tmux세션으로 돌아갑니다 .

tmux여기에 자세히 설명 된대로 더 많은 기능이 있습니다. 그러나 이것은 즉각적인 문제를 해결해야합니다.

행운을 빕니다!


7

마지막으로 다음을 사용하여 해결했습니다 screen.

화면 모드에서을 사용하여 분리하십시오 CtrlAD. 그런 다음 SSH 창을 닫을 수 있습니다.


5

nohup 사용 : 아래의 첫 번째 명령은 후속 로그 아웃이 중지되지 않도록 백그라운드에서 abcd 프로그램을 시작합니다.

$ nohup abcd &

$ 이탈

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.