배경 및 거부 프로세스

배경 및 거부 프로세스

scp꽤 큰 전송(한 원격 서버에서 다른 서버로)이 있습니다 .

그렇다면 이 명령을 실행하는 컴퓨터를 종료하고 싶을 수도 있습니다. 이로 인해 전송이 종료됩니까? sshBitwise 프로그램을 사용하여 쉘에 액세스 할 수 있습니다 .

답변1

여러 가지 솔루션이 있습니다.

배경 및 거부 프로세스

  1. 원격 서버의 SSH 터미널을 엽니다.
  2. 평소대로 전송을 시작합니다 scp.
  3. scp 프로세스를 백그라운드에 넣습니다( Ctrl+ Z, 그 다음 명령 bg.)
  4. 백그라운드 프로세스를 거부합니다( disown).
  5. 세션을 종료하면( exit) 프로세스가 원격 컴퓨터에서 계속 실행됩니다.

이 접근 방식의 한 가지 단점은 stdout 및 stderr에 대한 파일 설명자가 여전히 ssh 세션의 tty에 대한 참조를 포함한다는 것입니다. 따라서 종료하려고 하면 터미널이 중단될 수 있습니다. SSH 클라이언트를 강제 종료하여 이 문제를 해결할 수 있습니다 ~.(이스케이프 시퀀스는 새 줄을 따라야 합니다... 참조 ~?). 중단하려는 프로세스가 stdout 또는 stderr에 기록하는 경우 tty 버퍼가 오버플로되면 프로세스가 조기에 종료될 수 있습니다.

스크린 세션 생성 및 분리

GNU 화면세션에서 로그아웃한 후에도 서버를 분리하고 계속 실행할 수 있는 원격 터미널 세션을 생성하는 데 사용할 수 있습니다. 그런 다음 나중에 서버에 다시 로그인하여 세션에 다시 연결할 수 있습니다.

  1. SSH를 통해 원격 서버에 로그인합니다.
  2. 화면 세션을 시작하세요 screen -D -R <session_name>.
  3. 평소대로 전송을 시작합니다 scp.
  4. Ctrl+를 사용한 A다음 화면 세션을 분리하세요 d.
  5. SSH 세션 종료( exit)

세션에 다시 연결하려면:

  1. SSH를 통해 원격 서버에 로그인합니다.
  2. 스크린 세션에 다시 연결하고,screen -D -R <session_name>

전화를 끊지 않고 명령 실행

다음을 사용하여 답변 보기nohup.

작업 스케줄러 사용

자동화하려는 반복 작업인 경우 이것이 가장 좋은 솔루션입니다.

사용crontab,at, 또는batch이전을 준비하십시오.

답변2

당신이 사용할 수있는nohup(1)즉, 다음 작업을 수행합니다.

nohup scp alice@source:/the/answer/of/all [email protected]:/var/tmp/42 &

그러면 출력이 생성됩니다 nohup.out. 그러면 안전하게 로그아웃할 수 있습니다.

답변3

예, 종료됩니다. 연결 없이 터미널 세션을 활성 상태로 유지하는 솔루션은 다음 screen절차입니다.

SCREEN(1)                                                            SCREEN(1)

NAME
       screen - screen manager with VT100/ANSI terminal emulation

SYNOPSIS
       screen [ -options ] [ cmd [ args ] ]
       screen -r [[pid.]tty[.host]]
       screen -r sessionowner/[[pid.]tty[.host]]

DESCRIPTION
       Screen is a full-screen window manager that multiplexes a physical ter‐
       minal between several processes (typically interactive  shells).   Each
       virtual terminal provides the functions of a DEC VT100 terminal and, in
       addition, several control functions from the ISO 6429  (ECMA  48,  ANSI
       X3.64)  and ISO 2022 standards (e.g. insert/delete line and support for
       multiple character sets).  There is a  scrollback  history  buffer  for
       each virtual terminal and a copy-and-paste mechanism that allows moving
       text regions between windows.

답변4

nohup scp shinto@source:/home/data[이메일 보호됨]:/var/tmp/파일

일시적으로 중지 명령

CTRL+z

명령을 백그라운드에 넣으려면 다음을 입력하십시오.

배경

다음을 통해 프로세스를 확인할 수 있습니다.

일하다

관련 정보