telegram botunu yazdıktan sonra aws ec2 de deploy ettim fakat terminali her kapattıgımda karşılaştıgım sorun malın durmasi id ben code patlıyor zannediyordum sonradan farkettim ki mal ben her terminali kapattıgımda kendini de kapatıyormuş bunun çözümü ise bunun service olarak çalışması imiş ben
peki go projesini kendi makinemde nasıl service olarak çalıştırırım
öncelikle projemin build ini aldım ve lokasyonunu kopyaladım
go build main.goroot yetkisi ile service dosyamı oluşturdum. unutmayalım ki yapılan tüm işlemler root yetkisi il oluşturulması lazım yoksa saçma hatalar ile saatlerce uğraşabiliriz
sudo nano /etc/systemd/system/appgo.serviceoluşan dosyanın içine alttakinleri yapıştırdım
[Unit]
Description=MyApp Go Service
ConditionPathExists=/home/ec2-user/go/pkg/telegram-kendime-sozluk-bot
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/ec2-user/go/pkg/telegram-kendime-sozluk-bot
ExecStart=/home/ec2-user/go/pkg/telegram-kendime-sozluk-bot/main
Restart=on-failure
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=appgoservice
[Install]
WantedBy=multi-user.targetşimdi servis dosyamızı oluşturdugumuza göre bunu service olarak çalıştırmamız lazım
öncelikle service dosyamızda değişiklik oldugundan dolayı alltaraftaki komutu çalıştırıyoruz
sudo systemctl daemon-reloadbu komut yapılan değişiklikleri algılayacaktır
sonrasında sırasi ile altaraftaki komutları değiştiriyoruz bunlar setvisimizi çalıştırıp çalışma durumunu inceleyecektir
sudo service appgo start
sudo service appgo statusYeniden başlatmanın ardından otomatik olarak başlatılabilmesi için sistem hizmetine ekleyelim
sudo systemctl enable appgo
sudo systemctl start appgoBöylelikle projemiz service olarak çalışmaya başlıyacaktır