![systemd를 사용하여 AWS EC2 인스턴스에서 Go 애플리케이션을 서비스로 실행](https://linux55.com/image/228766/systemd%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20AWS%20EC2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%EC%84%9C%20Go%20%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%84%20%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A1%9C%20%EC%8B%A4%ED%96%89.png)
충돌 및 시스템 재부팅 시 Go 애플리케이션이 다시 시작되도록 Amazon Linux 2023이 설치된 EC2 인스턴스에서 Go 애플리케이션을 systemd 서비스로 설정하려고 합니다.
나는 다음 제안을 따랐습니다.여기:
- 다음 내용을 사용하여 /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
- 달리기
$ 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
하지만 그것도 작동하지 않습니다.
이 작업을 수행하는 올바른 방법은 무엇입니까?