Membuat NodeJS Aplikasi Server Sebagai Service di Linux

NodeJs adalah adalah running server yang semakin popular akhir-akhir ini bahkan semenjak ada nodejs bahasa JavaScript menjadi bahasa terpopuler di situs jejaring social developer yaitu github.com. Bukan rahasia laagi bahwa aplikasi nodejs dalam hal ini javascript bisa berjalan sendirian tanpa adanya web server.

Untuk lebih jelasnya mengenai nodejs ini mungkin bisa di baca-baca di situs resminya yaitu noejs.org, karena yang akan dibahas disini adalah bagaimana membuat ndejs aplikasi server bisa berjalan sebagai service, dimana biasanya untuk menjalankan nodejs aplikasi server ini dijalankan di terminal/cmd dengan mengunakan command node namaaplikasi.js  cukup merepotkan, karena harus ketik command tersebut setiap akan menjalankan aplikasi yang dibuat dengan nodejs.

Buat Server NodeJS


Untuk menjalankannya sebagai service tentunya kamu harus membuat dulu nodejs servernya, seperti contoh berikut:

const http = require('http');
const hostname = '127.0.0.1'; // listen on all ports
const port = 3000;
http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello Worldn');
}).listen(port, hostname, () => {
  console.log('Server running at http://${hostname}:${port}/');
});

kemudian di terminal arahkan directory ke tempat dimana kamu menyimpan server aplikasi misal /var/www/server.js dan ketikkan command berikut.

node /opt/nodeserver/server.js

maka akan muncul pesan bahwa nodejs telah running di host dan port sebelumnya yang telah kamu tentukan. Contoh pesannya seperti berikut;

Server running at http://127.0.0.1:3000/

Setting NodeJS Server Sebagai Service


Selanjutnya kita akan membuat server nodejs berjalan sebagai service, tentunya masih menggunakan terminal di linux (testing ubuntu server).

Pertama buat service file di  /etc/systemd/system/nodeserver.service dan isi file tersebut dengan kode berikut, untuk editnya bisa pake nano atau vim kemudian save.

[Unit]
Description=Node.js Example Server
#Requires=After=mysql.service       
# Requires the mysql service to run first

[Service]
ExecStart=/usr/local/bin/node /opt/nodeserver/server.js
# Required on some systems
#WorkingDirectory=/opt/nodeserver
Restart=always
# Restart service after 10 seconds if node service crashes
RestartSec=10
# Output to syslog
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodejs-example
#User=
#Group=
Environment=NODE_ENV=production PORT=1337

[Install]
WantedBy=multi-user.target

Untuk menjalan servicenya ketikkan command berikut di terminal:

systemctl enable nodeserver.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nodeserver.service to /etc/systemd/system/nodeserver.service.

kemudian start servicenya dengan command berikut:

systemctl start nodeserver.service

Untuk cek status apakah sudah berjalan atau belum di service bisa dicek dengan menggunakan command berikut:

systemctl status nodeserver.service

dan hasilnya kurang lebih seperti berikut:

● nodeserver.service - Node.js Example Server
   Loaded: loaded (/etc/systemd/system/nodeserver.service; enabled)
   Active: active (running) since Thu 2018-06-18 09:29:35 NZDT; 7s ago
 Main PID: 8952 (node)
   CGroup: /system.slice/nodeserver.service
           └─8952 /usr/local/bin/node /opt/nodeserver/server.js

Jul 18 09:29:35 fileserver nodejs-example[8952]: Server running at http://127.0.0.1:3000/

Selesai, selamat mencoba. ??

loading...

LEAVE A REPLY

Please enter your comment!
Please enter your name here