クラッシュとシステムの再起動時に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
しかし、それも動作しません。
これを行う正しい方法は何ですか?