Cara Membuat Custom Service di FreeBSD untuk Menjalankan Golang Web Server

mrfdn author

Rafi

pengalaman cara membuat custom service freebsd untuk menjalankan web server golang, nodejs dan lain-lain.

mrfdn.com - Hari ini saya ingin share bagaimana trik cara saya menjalankan Golang web server menggunakan FreeBSD.

Triknya adalah cukup dengan membuat script bash lalu membuat custom service untuk menjalankan script tersebut.

Kalau biasanya kita menjalankan program golang kita menggunakan perintah go run main.go.

Lalu program akan berjalan pada localhost:8080 atau semacamnya.

Nah di sini kita hanya perlu build program go kita, lalu menjalankan file binary sebagai output hasil build programnya.

Tanpa berlama-lama, berikut tutorialnya.

1. build program go

Jika struktur folder projekan go kita yang mana file main.go maka jalankan saja perintah:

go build -o ./bin/main .

Tapi jika struktur folder program go kita dimana file main.go berada di dalam ./cmd/main.go maka jalankan perintah berikut:

├── cmd
│   └── main.go
├── go.mod
└── go.sum
go build -o ./bin/main ./cmd/

Maka setelah build, kita akan menemukan file ./bin/main pada projekan. File main ini adalah sebuah file binary yang sudah siap dieksekusi untuk dijalankan.

├── bin
│   └── main
├── cmd
│   └── main.go
├── go.mod
└── go.sum

2. Membuat script untuk menjalnkan file binary

Pada folder projekan go kita buatlah file baru bernama terserah disini saya menamakannnya run.sh

nvim run.sh

Jadikan executable :

chmod +x run.sh

Lalu isi file tersebut dengan path dimana file executable binary go kita akan berjalan.

#!/bin/sh

cd /usr/local/www/go/mygoproject/ && nohup ./bin/main &

3. Membuat custom service

Masuk ke folder /usr/local/etc/rc.d lalu buat file custom service. Disini saya menamakan file saya sama seperti nama folder projekan go yaitu mygoproject.

Di dalamnya isi dengan perintah berikut:

#!/bin/sh

# PROVIDE: mygologin
# REQUIRE: LOGIN
# KEYWORD: shutdown

. /etc/rc.subr

name="mygoproject"
rcvar="mygoproject_enable"

command="/usr/local/www/go/mygoproject/run.sh"
pidfile="/var/run/${name}.pid"
required_files="/usr/local/www/go/mygoproject/run.sh"

load_rc_config $name
run_rc_command "$1"

4. Enable custom service di file rc.conf

Selanjutnya edit file /etc/rc.conf lalu tambahkan custom service disana:

sshd_enable="YES"
sendmail_enable="NONE"
nginx_enable="YES"
mygoproject_enable="YES"

5. Jalankan custom service

Terakhir, kita hanya perlu eksekusi untuk menjalankan custom service yang sudah dibuat. Cukup jalankan perintah berikut:

sudo service mygoproject start

anda bisa menjalankan perintah lain yang berhubungan dengan service sebagai berikut:

sudo service mygoscript stop
sudo service mygoscript status
sudo service mygoscript restart

Akhir kata

Konsepnya sama jika anda ingin menjalankan program nodejs.

Demikian tutorial singkat cara membuat custom service di freebsd untuk menjalankan web server golang, nodejs, dan lain-lain.

Semoga bermanfaat.

mrfdn author

Rafi

  • 15 year+ of Linux user.
  • 5 years+ blogger and web developer.

Jika artikel yang dibuatnya ternyata bermanfaat, support dengan cara

Baca juga