Create a Golang service in Linux

Untuk menjalankan aplikasi Go (Golang) sebagai layanan (service) di sistem Linux, Anda dapat menggunakan alat seperti systemd. Berikut langkah-langkah umum untuk menjalankan aplikasi Golang sebagai layanan di Linux:

Kompilasi Aplikasi Golang

Pastikan Anda telah mengompilasi aplikasi Golang Anda menjadi sebuah binary yang dapat dijalankan. Anda dapat melakukan ini dengan perintah go build. Pastikan binary tersebut dapat diakses dan dieksekusi.

Buat File Unit Systemd

Anda perlu membuat sebuah unit systemd file yang akan menjalankan aplikasi Golang Anda sebagai layanan. Buat file dengan ekstensi .service di direktori /etc/systemd/system/, contoh: /etc/systemd/system/mygoapp.service. Edit file tersebut dengan hak superuser.

Contoh isi file mygoapp.service:

[Unit]
Description=My Golang Application

[Service]
ExecStart=/path/to/your/go/binary WorkingDirectory=/path/to/your/app Restart=always

[Install]
WantedBy=multi-user.target

Gantilah /path/to/your/go/binary dengan jalur lengkap ke binary Golang Anda dan /path/to/your/app dengan direktori aplikasi Anda.

Reload Systemd

Setelah Anda membuat unit systemd, Anda perlu memuat ulang systemd untuk mendeteksi unit baru. Lakukan ini dengan perintah:

sudo systemctl daemon-reload

Mulai Layanan

Untuk memulai layanan Golang, gunakan perintah:

sudo systemctl start mygoapp

Mengaktifkan Layanan Autostart (Opsional)

Jika Anda ingin layanan Golang dijalankan otomatis saat sistem boot, gunakan perintah:

sudo systemctl enable mygoapp

Lihat Status Layanan

Anda dapat melihat status layanan dengan perintah:

sudo systemctl status mygoapp

Mengelola Layanan

Untuk menghentikan, menjalankan ulang, atau menonaktifkan layanan, gunakan perintah systemctl, misalnya:

sudo systemctl stop mygoapp # Menghentikan layanan
sudo systemctl restart mygoapp # Menjalankan ulang layanan
sudo systemctl disable mygoapp # Menonaktifkan layanan

Itu adalah panduan umum untuk menjalankan aplikasi Golang sebagai layanan di Linux menggunakan systemd. Pastikan untuk mengganti nilai-nilai dalam file unit sesuai dengan konfigurasi aplikasi Anda.


Posted

in

by

Tags: