>운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux에서 SSH 클라이언트 연결이 끊어진 후에도 프로세스를 계속 실행하는 구성 방법에 대한 자세한 소개

Linux에서 SSH 클라이언트 연결이 끊어진 후에도 프로세스를 계속 실행하는 구성 방법에 대한 자세한 소개

黄舟
黄舟원래의
2017-05-26 09:29:505574검색

클라우드 서버 ECS Linux 시스템에서는 일반적으로 실행 시간이 오래 걸리는 일부 작업을 실행할 때 SSH 연결을 끊거나 클라이언트 소프트웨어를 닫기 전에 실행이 완료될 때까지 기다려야 합니다. 그렇지 않으면 실행 중단이 발생할 수 있습니다. 이 문서에서는 사용자가 로그아웃 로그인한 후에도 프로그램이 계속 실행되도록 하는 몇 가지 방법을 소개합니다.

실행은 관리 터미널을 이용하세요

관리 터미널을 통해서는 서버의 로컬 세션(콘솔) 포트에 로그인하게 되며, 이 터미널에서 실행되는 프로그램은 영향을 받지 않습니다. SSH 로그인 사용자를 종료합니다. 구체적인 동작 방법은 다음과 같습니다.

1. 관리 단말기를 통해 서버에 로그인합니다.

2. 필요한 프로그램이나 스크립트를 실행합니다.

3.다음에 작업 실행상태를 확인해야 할 경우 다시 관리 터미널에 연결하여 확인하면 됩니다.

nohup을 사용하여 실행

nohup의 역할은 이름에서 알 수 있듯이 후속 명령이 SIGHUP 신호에 응답하는 것을 방지하는 것입니다. 즉, 원격 로그인을 통해 nohup을 실행한 후에는 로그아웃 후에도 프로그램은 정상적으로 실행됩니다. 일반적으로 nohup 명령 뒤에는 & 문자가 끝에 붙는데, 이는 해당 명령이 백그라운드에서 실행된다는 것을 의미하므로 해당 명령은 백그라운드에서 계속해서 실행될 수 있습니다.

연산 예 :
1. 일반적인 실행 명령어는 bash hello.sh이고, 실행 결과는 1초에 한 줄씩 출력하는 작은 프로그램이다. :

Linux에서 SSH 클라이언트 연결이 끊어진 후에도 프로세스를 계속 실행하는 구성 방법에 대한 자세한 소개

2. 명령 시작과 끝에 nohup과 &를 추가하면 nohup bash hello.sh &가 되는 것을 확인할 수 있습니다. 한 줄의 정보를 출력한 다음 Enter 키를 눌러 쉘 명령줄로 다시 이동합니다. 이때 명령은 백그라운드에서 실행되었으며 nohup은 명령의 출력을 nohup.out 파일로 리디렉션합니다. 현재 디렉토리. 또한 nohup은 해당 프로그램의 PID를 출력합니다. PID는 프로세스를 중단해야 할 때 프로세스를 종료하는 데 사용될 수 있습니다.

Linux에서 SSH 클라이언트 연결이 끊어진 후에도 프로세스를 계속 실행하는 구성 방법에 대한 자세한 소개

3. tail -f nohup.out 을 통해 nohup.out의 출력을 지속적으로 확인하여 프로그램 모니터링 효과를 얻을 수 있습니다.

Linux에서 SSH 클라이언트 연결이 끊어진 후에도 프로세스를 계속 실행하는 구성 방법에 대한 자세한 소개

4. 명령에서 리디렉션을 사용하여 nohup bash hello.sh >와 같이 프로그램의 출력을 원하는 파일 이름으로 변경할 수도 있습니다. ;hello .log &, 프로그램의 출력은 hello.log 파일에 기록됩니다.

5. 프로그램이 자동으로 종료되지 않으면 kill 명령을 사용하여 프로세스를 종료해야 합니다. 예를 들어 kill -TRM 명령을 사용하여 작동할 수 있습니다. 여기서 PID는 이전에 nohup이 출력한 값이며, 이 예에서는 값이 1231입니다.

사용 제한:

nohup은 일반적으로 개입 없이 자동화된 프로그램이나 스크립트를 실행하는 데 사용되며 상호 작용으로 작업을 완료할 수 없습니다.

화면을 사용하여 실행

설치화면 도구

Linux 시스템에는 기본적으로 화면 도구가 제공되지 않습니다. 먼저 설치해야 합니다:

  • CentOS 시리즈 시스템: yum 설치 화면

  • Ubuntu 시리즈 시스템: sudo apt-get 설치 화면

사용 소개

1. 화면 창 만들기

screen -S  name
# name可以设置为ssh、ftp,用于标注该 screen 窗口用途
# 示例:screen -S ftp

2. 화면 프로세스를 나열하고 입력한 필수 화면

screen -ls  ##列出 screen 进程列表

은 아래와 같습니다
Linux에서 SSH 클라이언트 연결이 끊어진 후에도 프로세스를 계속 실행하는 구성 방법에 대한 자세한 소개

후 스크립트 실행, 프로그램 실행 등 필요한 작업을 수행합니다.

아래와 같이: FTP 연결을 생성하고 백그라운드에서 전송 파일을 다운로드합니다

Linux에서 SSH 클라이언트 연결이 끊어진 후에도 프로세스를 계속 실행하는 구성 방법에 대한 자세한 소개

3. 종료하고

저장합니다. 위의 ftp 작업 예는 전송을 시작합니다. 창에서 Ctrl+a 키를 입력한 다음 d 키를 눌러 SSH 로그인을 종료하지만 screen 프로그램 실행에는 영향을 미치지 않습니다.

4. 계속하려면 세션을 저장하세요

화면 기능을 사용하여 원격 세션을 관리할 수 있습니다. 작업 단계 개요:

  • 서버에 대한 일반 SSH 로그인

  • 화면 창 만들기

  • 작업 실행에 필요

  • 일시 중단하고 종료해야 할 경우 Ctrl +d를 눌러 저장하고 종료

  • 계속해야 할 경우 작업 중이라면 다시 SSH를 통해 서버에 로그인한 후 직접 실행 screen -r -d 그냥 세션을 재개하면 됩니다.

위 내용은 Linux에서 SSH 클라이언트 연결이 끊어진 후에도 프로세스를 계속 실행하는 구성 방법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.