집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux에서 SSH 클라이언트 연결이 끊어진 후에도 프로세스를 계속 실행하는 구성 방법에 대한 자세한 소개
클라우드 서버 ECS Linux 시스템에서는 일반적으로 실행 시간이 오래 걸리는 일부 작업을 실행할 때 SSH 연결을 끊거나 클라이언트 소프트웨어를 닫기 전에 실행이 완료될 때까지 기다려야 합니다. 그렇지 않으면 실행 중단이 발생할 수 있습니다. 이 문서에서는 사용자가 로그아웃 로그인한 후에도 프로그램이 계속 실행되도록 하는 몇 가지 방법을 소개합니다.
관리 터미널을 통해서는 서버의 로컬 세션(콘솔) 포트에 로그인하게 되며, 이 터미널에서 실행되는 프로그램은 영향을 받지 않습니다. SSH 로그인 사용자를 종료합니다. 구체적인 동작 방법은 다음과 같습니다.
1. 관리 단말기를 통해 서버에 로그인합니다.
2. 필요한 프로그램이나 스크립트를 실행합니다.
3.다음에 작업 실행상태를 확인해야 할 경우 다시 관리 터미널에 연결하여 확인하면 됩니다.
nohup의 역할은 이름에서 알 수 있듯이 후속 명령이 SIGHUP 신호에 응답하는 것을 방지하는 것입니다. 즉, 원격 로그인을 통해 nohup을 실행한 후에는 로그아웃 후에도 프로그램은 정상적으로 실행됩니다. 일반적으로 nohup 명령 뒤에는 & 문자가 끝에 붙는데, 이는 해당 명령이 백그라운드에서 실행된다는 것을 의미하므로 해당 명령은 백그라운드에서 계속해서 실행될 수 있습니다.
연산 예 :
1. 일반적인 실행 명령어는 bash hello.sh이고, 실행 결과는 1초에 한 줄씩 출력하는 작은 프로그램이다. :
2. 명령 시작과 끝에 nohup과 &를 추가하면 nohup bash hello.sh &가 되는 것을 확인할 수 있습니다. 한 줄의 정보를 출력한 다음 Enter 키를 눌러 쉘 명령줄로 다시 이동합니다. 이때 명령은 백그라운드에서 실행되었으며 nohup은 명령의 출력을 nohup.out 파일로 리디렉션합니다. 현재 디렉토리. 또한 nohup은 해당 프로그램의 PID를 출력합니다. PID는 프로세스를 중단해야 할 때 프로세스를 종료하는 데 사용될 수 있습니다.
3. tail -f nohup.out 을 통해 nohup.out의 출력을 지속적으로 확인하여 프로그램 모니터링 효과를 얻을 수 있습니다.
4. 명령에서 리디렉션을 사용하여 nohup bash hello.sh >와 같이 프로그램의 출력을 원하는 파일 이름으로 변경할 수도 있습니다. ;hello .log &, 프로그램의 출력은 hello.log 파일에 기록됩니다.
5. 프로그램이 자동으로 종료되지 않으면 kill 명령을 사용하여 프로세스를 종료해야 합니다. 예를 들어 kill -TRM
사용 제한:
nohup은 일반적으로 개입 없이 자동화된 프로그램이나 스크립트를 실행하는 데 사용되며 상호 작용으로 작업을 완료할 수 없습니다.
Linux 시스템에는 기본적으로 화면 도구가 제공되지 않습니다. 먼저 설치해야 합니다:
CentOS 시리즈 시스템: yum 설치 화면
Ubuntu 시리즈 시스템: sudo apt-get 설치 화면
1. 화면 창 만들기
screen -S name # name可以设置为ssh、ftp,用于标注该 screen 窗口用途 # 示例:screen -S ftp
2. 화면 프로세스를 나열하고 입력한 필수 화면
screen -ls ##列出 screen 进程列表
은 아래와 같습니다
후 스크립트 실행, 프로그램 실행 등 필요한 작업을 수행합니다.
아래와 같이: FTP 연결을 생성하고 백그라운드에서 전송 파일을 다운로드합니다
3. 종료하고
저장합니다. 위의 ftp 작업 예는 전송을 시작합니다. 창에서 Ctrl+a 키를 입력한 다음 d 키를 눌러 SSH 로그인을 종료하지만 screen 프로그램 실행에는 영향을 미치지 않습니다.
4. 계속하려면 세션을 저장하세요
화면 기능을 사용하여 원격 세션을 관리할 수 있습니다. 작업 단계 개요:
서버에 대한 일반 SSH 로그인
화면 창 만들기
작업 실행에 필요
일시 중단하고 종료해야 할 경우 Ctrl +d를 눌러 저장하고 종료
계속해야 할 경우 작업 중이라면 다시 SSH를 통해 서버에 로그인한 후 직접 실행 screen -r -d 그냥 세션을 재개하면 됩니다.
위 내용은 Linux에서 SSH 클라이언트 연결이 끊어진 후에도 프로세스를 계속 실행하는 구성 방법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!