systemd를 사용하여 AWS EC2 인스턴스에서 Go 애플리케이션을 서비스로 실행

systemd를 사용하여 AWS EC2 인스턴스에서 Go 애플리케이션을 서비스로 실행

충돌 및 시스템 재부팅 시 Go 애플리케이션이 다시 시작되도록 Amazon Linux 2023이 설치된 EC2 인스턴스에서 Go 애플리케이션을 systemd 서비스로 설정하려고 합니다.

나는 다음 제안을 따랐습니다.여기:

  1. 다음 내용을 사용하여 /etc/systemd/system에 /home/ec2-user/mygoapp.service에 대한 심볼릭 링크를 만들었습니다.
[Unit]
Description=My app
After=network.target

[Service]
Restart=always
RestartSec=3
ExecStart=/home/ec2-user/path/to/binary

[Install]
WantedBy=multi-user.target
  1. 달리기
$ sudo systemctl enable mygoapp
$ sudo systemctl start mygoapp

하지만 내 응용 프로그램이 실행되지 않습니다.

또한 다음 mygoapp.service 콘텐츠를 사용해 보았습니다.

[Unit]
Description=My app
ConditionPathExists=/home/ec2-user/path/to/folder/containing/go/source/files
After=network.target

[Service]
Restart=always
RestartSec=3
WorkingDirectory=/home/ec2-user/path/to/folder/containing/go/source/files
ExecStart=/usr/local/go/bin/go run .

[Install]
WantedBy=multi-user.target

mygoapp.service를 편집한 후 다음을 실행합니다.

$ sudo systemctl daemon-reload
$ sudo systemctl stop mygoapp
$ sudo systemctl start mygoapp

하지만 그것도 작동하지 않습니다.

이 작업을 수행하는 올바른 방법은 무엇입니까?

관련 정보