systemd를 사용하여 golang 애플리케이션을 배포하고 방어하는 방법

PHPz
풀어 주다: 2023-04-05 09:43:27
원래의
1341명이 탐색했습니다.

클라우드 컴퓨팅 시대에 신속한 배포를 통해 개발자는 신속하게 제품을 제공하고 사용자 요구에 신속하게 대응할 수 있습니다. Golang은 최근 몇 년 동안 클라우드 컴퓨팅 분야에서 필수적인 프로그래밍 언어가 되었습니다. 이는 빠른 컴파일과 효율적인 동시성 성능을 결합합니다. 하지만 애플리케이션이 충돌하면 어떻게 될까요? 애플리케이션을 계속 실행하려면 데몬을 사용하여 애플리케이션을 모니터링하고 다시 시작해야 합니다. 이 기사에서는 systemd를 사용하여 golang 애플리케이션을 배포하고 방어하는 방법을 소개합니다.

1. 설치 및 구성 systemd

systemd는 오늘날 가장 널리 사용되는 초기화 및 데몬 관리 시스템 중 하나입니다. 시스템 서비스와 데몬을 시작하고, 상태를 모니터링하고, 필요할 때 다시 시작하는 일을 담당합니다. systemd를 사용하기 전에 먼저 설치해야 합니다.

다음 명령을 사용하여 systemd를 설치합니다:

$ sudo apt-get update
$ sudo apt-get install -y systemd
로그인 후 복사

2. 서비스 파일 생성

데몬을 생성하기 전에 systemd 서비스 파일을 생성해야 합니다. 서비스 파일은 서비스를 설명하는 정보가 포함된 텍스트 파일입니다. 서비스 파일의 위치는 /etc/systemd/system/ 디렉터리에 있습니다. 예를 들어 golang-demo.service라는 서비스 파일을 생성합니다. /etc/systemd/system/ 目录下。例如,我们创建一个名为 golang-demo.service 的服务文件:

$ sudo touch /etc/systemd/system/golang-demo.service
로그인 후 복사

编辑 golang-demo.service 文件:

$ sudo nano /etc/systemd/system/golang-demo.service
로그인 후 복사

在文件中添加以下内容:

[Unit]
Description=My golang app
After=network.target

[Service]
Type=simple
User=ubuntu
Group=ubuntu
ExecStart=/usr/local/bin/golang-demo

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

其中,

  • [Unit] 部分包含服务名称和描述,以及该服务应该在何时启动(在 network.target 后)。
  • [Service] 部分描述了启动服务的详细信息,包括使用的用户,组,以及启动脚本文件的位置。
  • [Install] 部分规定了 systemd 应该在哪个目标身上启动该服务。

三、创建 golang 应用程序

接下来,我们需要创建一个 golang 应用程序,名为 golang-demo。在 terminal 中,使用以下 git 命令克隆一个简单的 go 应用程序:

$ git clone https://github.com/shalar/golang-demo.git
로그인 후 복사

进入项目目录,并构建和编译应用程序:

$ cd golang-demo
$ go build
로그인 후 복사

我们需要将生成的二进制文件 golang-demo 移动到 /usr/local/bin 目录中。

$ sudo mv golang-demo /usr/local/bin/
로그인 후 복사

四、启动服务并进行测试

现在,我们已准备好启动服务并测试它了。使用命令启动服务:

$ sudo systemctl start golang-demo.service
로그인 후 복사

查看服务的状态:

$ sudo systemctl status golang-demo.service
로그인 후 복사

看到 active (running),表示服务正在运行,可以通过浏览器访问 http://localhost:8080,应该可以看到输出。

五、开机自启动

如前所述,在 [Install]

$ sudo systemctl enable golang-demo.service
로그인 후 복사
golang-demo.service 파일을 편집합니다.

rrreee

파일 :

rrreee

여기서

  • [Unit] 부분에는 서비스 이름과 설명, 서비스 시작 시기(network.target에서)가 포함됩니다. 코드> 뒤로).
  • [서비스] 섹션에서는 사용자, 사용된 그룹, 시작 스크립트 파일 위치 등 서비스 시작에 대한 세부 정보를 설명합니다.
  • [Install] 섹션은 systemd가 서비스를 시작해야 하는 대상을 지정합니다.
3. golang 애플리케이션 만들기🎜🎜다음으로 golang-demo라는 golang 애플리케이션을 만들어야 합니다. 터미널에서 다음 git 명령을 사용하여 간단한 go 애플리케이션을 복제합니다. 🎜rrreee🎜프로젝트 디렉터리로 이동하여 애플리케이션을 빌드하고 컴파일합니다. 🎜rrreee🎜생성된 바이너리 파일 golang-demo <code>/usr/local/bin 디렉터리로 이동합니다. 🎜rrreee🎜4. 서비스 시작 및 테스트🎜🎜이제 서비스를 시작하고 테스트할 준비가 되었습니다. 서비스를 시작하려면 다음 명령을 사용하세요. 🎜rrreee🎜 서비스 상태 확인: 🎜rrreee🎜 활성(실행 중)이 표시되면 서비스가 실행 중이라는 뜻입니다. http:/ /localhost:8080 브라우저를 통해 출력이 표시되어야 합니다. 🎜🎜5. 부팅 시 자동 시작🎜🎜앞서 언급한 것처럼 [Install] 섹션에서 서비스를 시작할 대상 시스템을 지정합니다. 이제 다음 명령을 사용하여 부팅 시 자동으로 시작할 수 있습니다. 🎜rrreee🎜이제 시스템은 시작될 때마다 자동으로 서비스를 시작합니다. 🎜🎜6. 결론🎜🎜이 글에서는 systemd를 사용하여 golang 애플리케이션을 배포하고 보호하는 방법을 소개합니다. systemd는 서비스의 시작, 중지, 다시 시작 및 기타 작업을 쉽게 관리하여 애플리케이션이 항상 온라인 상태를 유지할 수 있게 해주는 인기 있는 데몬 관리자입니다. 🎜

위 내용은 systemd를 사용하여 golang 애플리케이션을 배포하고 방어하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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