Cara Membuat Custom Service di FreeBSD untuk Menjalankan Golang Web Server
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.