> 백엔드 개발 > Golang > 실행 중인 프로그램에 영향을 주지 않고 Golang에서 터미널을 닫는 방법

실행 중인 프로그램에 영향을 주지 않고 Golang에서 터미널을 닫는 방법

PHPz
풀어 주다: 2023-04-06 10:56:58
원래의
1137명이 탐색했습니다.

Golang은 특히 네트워크 프로그래밍과 동시 프로그래밍 분야에서 매우 인기 있는 프로그래밍 언어입니다. 하지만 Golang을 사용하여 프로그램을 개발할 때 터미널을 닫은 후 프로그램을 닫는 문제가 발생할 수 있습니다. 이 기사에서는 프로그램 실행에 영향을 주지 않고 Golang에서 터미널을 닫는 방법을 소개합니다.

  1. 백그라운드에서 프로그램 실행 실현

Linux 또는 Unix 시스템에서는 Golang 프로그램을 백그라운드에서 실행할 수 있으므로 터미널을 닫은 후에도 프로그램이 계속 실행됩니다. 구현 방법은 다음과 같습니다.

nohup 명령을 사용하여 프로그램을 백그라운드에 넣습니다.

$ nohup ./myprogram &
로그인 후 복사

그중 myprogram은 백그라운드에서 실행하려는 프로그램입니다.

  1. 관리를 위해 open-falcon-supervisor 사용

open-falcon-supervisor는 프로세스를 모니터링, 관리 및 다시 시작할 수 있는 오픈 소스 Golang 프로세스 관리 도구입니다. open-falcon-supervisor를 사용하면 터미널을 닫은 후에도 프로그램 실행이 중지되지 않는 효과를 얻을 수 있습니다. 구체적인 사용법은 다음과 같습니다.

  • open-falcon-supervisor 설치

open-falcon-supervisor를 설치하려면 터미널에 다음 명령을 입력하세요.

$ curl -Ls http://7xjci3.com1.z0.glb.clouddn.com/tools/supervisor/install.sh | sh
로그인 후 복사
  • supervisord.conf 파일 구성

supervisord 생성 /etc.conf 파일 아래에 다음 내용을 추가합니다:

[program:myprogram]
command=/path/to/myprogram #程序路径
autostart=true
autorestart=true
startretries=10
redirect_stderr=true
stdout_logfile=/path/to/myprogram.log #日志路径
로그인 후 복사

여기서 myprogram은 실행하려는 프로그램의 이름이고 /path/to/myprogram은 프로그램의 경로이며 /path/ to/myprogram.log는 프로그램 로그 파일의 경로입니다.

  • 감독자 시작

감독자를 시작하려면 터미널에 다음 명령을 입력하세요.

$ supervisord
로그인 후 복사

이렇게 하면 open-falcon-supervisor가 관리하는 프로그램이 백그라운드에서 실행되며 종료 후에도 프로그램이 계속 실행됩니다. 터미널.

  1. systemd 관리 사용

systemd는 프로세스를 모니터링, 관리 및 다시 시작할 수 있는 Linux의 시스템 및 서비스 관리자입니다. systemd 관리 프로그램을 사용하면 터미널을 닫은 후에도 프로그램 실행이 중지되지 않는 효과를 얻을 수 있습니다. 구체적인 사용법은 다음과 같습니다.

  • 프로그램 서비스 파일 작성

/etc/systemd/system 디렉토리에 myprogram.service 파일을 생성하고 그 안에 다음 내용을 추가합니다.

[Unit]
Description=My Program Service
After=network.target

[Service]
Type=simple
ExecStart=/path/to/myprogram #程序路径
Restart=on-failure

[Install]
WantedBy=multi-user.target
로그인 후 복사

그 중 myprogram은 실행하려는 프로그램 이름, /path/to/myprogram은 프로그램의 경로입니다.

  • 서비스 시작

서비스를 시작하려면 터미널에 다음 명령을 입력하세요.

$ systemctl start myprogram
로그인 후 복사

이렇게 하면 systemd에서 관리하는 프로그램이 백그라운드에서 실행되며, 터미널을 닫은 후에도 프로그램이 계속 실행됩니다. .

  1. 스크린 명령 사용

스크린 명령은 Linux에서 세션 관리 도구로, 여러 세션을 생성하고 세션 간 전환이 가능하며, 세션에서 프로그램을 실행하고 프로그램을 백그라운드로 전환할 수도 있습니다. 터미널을 닫은 후 프로그램이 중지되는 것을 방지하려면 screen 명령을 사용하십시오. 구체적인 사용법은 다음과 같습니다.

  • 설치 화면

설치 화면을 만들려면 터미널에 다음 명령을 입력하세요.

$ sudo apt-get install screen
로그인 후 복사
  • 새 화면 세션 만들기

새 화면을 만들려면 터미널에 다음 명령을 입력하세요. session:

$ screen -S myprogram
로그인 후 복사

그 중 myprogram이 세션 이름이에요.

  • 프로그램 실행

스크린 세션에서 프로그램 실행:

$ /path/to/myprogram
로그인 후 복사
  • 프로그램을 백그라운드에서 실행하도록 넣기

스크린 세션에서 Ctrl + a + d 단축키를 사용하여 프로그램을 넣습니다. 백그라운드에서 터미널을 닫고 프로그램은 계속 실행됩니다.

  • 스크린 세션 복원

이전에 생성된 스크린 세션을 복원하려면 터미널에 다음 명령을 입력하세요.

$ screen -r myprogram
로그인 후 복사

이렇게 하면 screen 명령을 사용하여 관리하는 프로그램이 백그라운드에서 실행되며, 프로그램은 계속해서 터미널을 닫은 후 실행하십시오.

요약

위 내용은 온라인에서 Golang을 사용할 때 프로그램 실행에 영향을 주지 않고 터미널을 닫을 수 있는 몇 가지 방법입니다. 귀하의 필요와 실제 상황에 따라 적절한 프로그램 관리 방법을 선택할 수 있습니다. 이 글이 모든 사람에게 도움이 되기를 바랍니다.

위 내용은 실행 중인 프로그램에 영향을 주지 않고 Golang에서 터미널을 닫는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿