쉘에서 명령을 실행하고 세션을 닫을 때 명령을 계속 실행하십시오.

StackOverflow https://stackoverflow.com/questions/431521

  •  08-07-2019
  •  | 
  •  

문제

Putty를 사용하여 원격 서버에 연결하고 있습니다. 내가 알고 싶은 것은 내 명령을 작성하고 Putty와의 세션을 닫은 후에도 계속 달리는 방법이 있는지 여부입니다. 그 이유는 컴퓨터를 항상 유지하고 싶지 않기 때문입니다. 이것을 할 방법이 있습니까?.

솔루션으로 업데이트하십시오

내 질문이 제시되어 있으므로 최상의 솔루션은 다음과 같이 제공된 명령 중 하나를 사용하는 것입니다. Nohup, 추가 소프트웨어를 설치할 필요가 없기 때문입니다. 그러나 같은 문제가있는 경우 화면을 사용하는 경우 설치하고 사용하십시오. 놀랍습니다.

명령을 사용하여 여러 솔루션을 제안하고 화면. 그러나 다른 답변을 특히 PEZ의 하나에 대해 확인하십시오. 그런 다음 어떤 화면이 할 수 있는지에 대한 통찰력을 얻습니다.

도움이 되었습니까?

해결책

nohup, disown, 그리고 screen 모두 좋지만 screen 다른 두 가지와 달리 최고입니다. screen 원격 서버에서 연결을 끊고 모든 것을 실행 한 다음 나중에 다시 연결하여 무슨 일이 일어나고 있는지 확인할 수 있습니다. 와 함께 nohup 그리고 disown 상호 작용을 재개 할 수 없습니다.

다른 팁

화면! 얇게 썬 빵 이후로 가장 좋은 것입니다. (예, 나는 다른 사람들이 이미 그것을 제안했다는 것을 알고 있지만, 전 세계가 참여하고 제안해야 할 것은 너무 좋습니다.)

화면은 VNC를 사용하는 것과 같은 ummmm과 같습니다. 동일한 화면 세션에서 여러 쉘 "Windows"가 한 번에 열릴 수 있습니다. 당신은 다음과 같은 일을 할 수 있습니다.

  1. "Screen -DR"을 사용하여 화면 세션을 시작하십시오 (-DR을 사용하는 데 익숙해짐)
    • 한 창에서 일부 명령을 실행하십시오
    • 누르다 CTRL 키-, 새 창을 만들려면 VIM에서 파일을 엽니 다.
    • 누르다 CTRL 키-,0 첫 번째 창으로 돌아가서 방금 편집 한 파일에 명령을 내려면
    • CTRL 키-, 1 VIM 세션으로 돌아갑니다
    • CTRL 키-, 또 다른 창과 "Sudo -Su"를 할 수 있습니다 (전체 루트 쉘이 필요하기 때문에).
    • CTRL 키-, 0 배경 과정을 시작하십시오
    • CTRL 키-, 새 창을 만들려면 "Tail -f"해당 배경 프로세스의 로그
    • CTRL 키-, 그런 다음 화면을 분리합니다 CTRL 키- 서버에서 분리합니다
    • 3 주 동안 휴가를 가십시오
    • 서버에 다시 로그온하고 "Screen -DR"을 발행하여 기존 화면 세션에 연결하십시오.
    • 네 번째 창에서 로그를 확인하십시오 CTRL 키-, 3 (당신이 항상 그것을보고 있었던 것 같아요)
    • CTRL 키-, 1 VIM 세션을 다시 선택합니다
    • 지금 사진을 찍기 시작한 것 같아요? =))

마법 같아요. 나는 기억할 수있는 것보다 더 오래 스크린을 사용해 왔으며 여전히 피의가 얼마나 큰지에 대해 완전히 놀랐습니다.

편집하다: 지금도 있다고 언급하고 싶습니다 tmux. 아주 좋아요 화면, 그러나 몇 가지 독특한 기능이있어 창을 가장 두드러지게 분할합니다.

사용해보십시오 GNU 화면. 한 번에 여러 개의 쉘을 열 수 있습니다. 그리고 껍질이 달리는 껍질 (즉, 퍼티와의 가까운 세션)과 연결을 끊을 수 있으며 계속해서 일을 할 것입니다.

당신이 찾고있는 것은입니다 Nohup.

사용 방법은 Wiki 링크를 참조하십시오.

화면이 최고입니다.

노력하다:

스크린 -dms "my tail"tail -f/var/log/syslog

이 시작 명령은 백그라운드에서.

Screen -R을 사용하여 목록을 사용하거나 Screen -R MyTail을 사용하여 세션을 입력하십시오.

더 많은 사용자가 동일한 세션에 액세스 해야하는 경우 : Screen -RX MyTail을 사용하고 두 명 이상의 사용자가 세션을 공유합니다.

사용할 수없는 경우 screen (예를 들어, SSH 세션은 프로그래밍 방식으로 구동되고 있기 때문에) 데모네 화 프로그램을 데몬으로 실행합니다.

나를 위해 잘 작동하는 한 가지 방법은입니다 at.

at Cron과 같은 일이지만 일회성 작업을 위해 작동합니다. 나는 오늘 그것을 사용하여 세션을 계속 유지하지 않고도 큰 파일을 다운로드했습니다.

예를 들어:

$ at 23:55
at> wget http://file.to.download.com/bigfile.iso
at> ^D  

당신은 통과 at 시간 (미래에) 그리고 그것은 당신에게 프롬프트를 제공합니다. 그 당시 실행하려는 명령을 입력하고 Ctrl+d를 누르십시오. 세션에서 나가면 지정된 시간에 명령이 실행됩니다.

위키 백과 더 많은 정보가 있습니다 at.

./command & disown
ssh localhost && ./command && exit
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top