Tuesday, February 7, 2012

Menjalankan Aplikasi Java Sebagai Service di Ubuntu

Saat bikin aplikasi java yang sudah berjalan, saya punya rencana untuk buat aplikasi ini sebagai service di ubuntu. Nah, permasalahannya adalah ada berbagai macam cara yang bisa digunakan menjadikan aplikasi java sebagai service di linux. Misalnya Java Service Wrapper, JSVC, YAJWS, dan masih banyak lagi. Namun, apa bisa dikata saya butuh yang cepat dari latar belakang keilmuwan saya, akhirnya pilihan jatuh ke daemon.

Langsung saja ke TKP....

Untuk bisa menjadikan Aplikasi Java anda berjalan sebagai daemon, langkah pertama yang perlu anda lakukan adalah install daemon dengan perintah sebagai berikut :

[sourcecode language="css"]
sudo apt-get install daemon
[/sourcecode]

okey, jika instalasi sudah berjalan lancar, saya akan bahas secara singkat cara menggunakan daemon untuk menjadikan aplikasi sebagai services.
Membuat Sebuah Services (Start Services)

Perintah di bawah ini digunakan untuk menjalankan sebuah service.

[sourcecode language="css"]
sudo daemon --name="ngeping" -- ping localhost
[/sourcecode]

Keterangan:
--name="ngeping" --> digunakan untuk memberikan nama service yang dijalankan

-- ping localhost --> adalah aplikasi yang akan dijadikan services

Jadi pada saat anda menuliskan perintah "sudo daemon --name="ngeping" -- ping localhost" pada terminal linux, daemon akan menjalankan aplikasi ping secara tersembunyi. Pertanyaan nya, bagaimana cara melihat hasil ping yang sedang berlangsung?
Begini perintahnya :

[sourcecode language="css"]
sudo daemon --name="ngeping" --output=/tmp/ping.log -- ping localhost
tail -f /tmp/ping.log
[/sourcecode]

hasilnya kira-kira begini :

[sourcecode language="css"]
root@nunenuh:~/# tail -f /tmp/ping.log
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.077 ms
64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.064 ms
64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.056 ms
64 bytes from localhost (127.0.0.1): icmp_req=4 ttl=64 time=0.059 ms
64 bytes from localhost (127.0.0.1): icmp_req=5 ttl=64 time=0.065 ms
64 bytes from localhost (127.0.0.1): icmp_req=6 ttl=64 time=0.098 ms
^C
[/sourcecode]

Mematikan Service Yang Telah Anda Buat

okey, jika barusan anda berhasil untuk membuat sebuah service, selanjutnya adalah cara mematikan nya. Untuk mematikan sebuah service yang telah anda buat. Perintahnya adalah sebagai berikut:

[sourcecode language="css"]
sudo daemon --name="ngeping" --stop
[/sourcecode]

Okey perinah diatas digunakan untuk mematikan service yang telah anda buat, tapi bagaiman cara melihat services yang telah anda buat sudah tidak aktif lagi?

Melihat Status Service Yang Telah Anda Buat

Cara untuk mengetahui services yang anda jalankan masih berjalan atau sudah tidak aktif adalah dengan menggunakan perintah --running yang dipadukan dengan --verbose, berikut ini perintahnya :

[sourcecode language="css"]
sudo daemon --name="ngeping" --pidfile=/var/run/ngeping.pid --running --verbose
[/sourcecode]

hasilnya kira-kira sebagai berikut :

[sourcecode language="css"]
root@nunenuh:~/# daemon --name="ngeping" --pidfile=/var/run/ngeping.pid --running --verbose
daemon: ngeping is running (pid 30224)
[/sourcecode]

Pada perintah diatas anda bisa melihat ada perintah "--pidfile=/var/run/ngeping.pid", perintah ini digunakan untuk menyatakan lokasi file Proccess-ID (PID) yang secara default pada ubuntu berada pada path /var/run. Sedangkan ngeping.pid secara automatis dibuat oleh daemon dengan perintah --name="ngeping", sehingga pada path /var/run/ aplikasi daemon membuat sebuah file dengan nama ngeping.pid.

Membuat Service untuk Aplikasi Java

Keetiga dasar diatas sangat penting untuk Anda ketahui sebelum memulai membuat sebuah file yang bisa digunakan untuk membuat service pada ubuntu. Langkah selanjutnya adalah membuat sebuah file untuk menjalankan service, tapi sebelumnya izinkan saya menjelaskan skenario kasusnya terlebih dahulu. Okey begini skenarionya :

  • Aplikasi Java yang sudah saya bangun memiliki nama server.jar

  • Lokasi file Aplikasi Java yang sudah saya bangun berada pada /opt/server/server.jar

  • JRE yang saya gunakan JRE 1.7


Supaya lebih singkat penulisan saya, lihat script dibawah ini :

[sourcecode language="css"]
#!/bin/sh

#----------------------
# InitScript untuk Server
#----------------------
# Script ini digunakan untuk mengontrol server
# Author Lalu Erfandi Maula Yusnu

#--------------------
#PERSIAPAN
#--------------------
#konfigurasi script
ServiceName="server"
ServiceHome="/opt/server"
ServiceFile="$ServiceHome/$ServiceName.jar"
ServiceLogFile="/var/log/$ServiceName.log"
ServicePidFile="/var/run/$ServiceName.pid"

#command for running epanel
javaCmd="java -jar"
javaRunCmd="$javaCmd $ServiceFile"
dName="--name=$ServiceName"
dLog="--output=$ServiceLogFile"
dPid="--pidfile=$ServicePidFile"

#------------------
# AKHIR PERSIAPAN
#------------------

#-----------------------
# PENDEFINISIAN FUNGSI-FUNGSI
#-----------------------

daemon_start(){
sudo daemon $dName $dLog $dPid --unsafe -- $javaRunCmd
echo "Starting server service..."
}

daemon_stop(){
sudo daemon $dName --stop -- $javaRunCmd
echo "Stopping server service..."
}

daemon_restart(){
daemon_stop
daemon_start
echo "Restarting server service complete..."
}

daemon_status(){
sudo daemon $dName $dPid --running --verbose
}

#-----------------------------------
# AKHIR PENDEFINISIAN FUNGSI-FUNGSI
#-----------------------------------

#-----------------------
# IN ACTION
#-----------------------

case "$1" in
start)
daemon_start
;;
stop)
daemon_stop
;;
restart)
daemon_restart
;;
status)
daemon_status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac

exit 0
[/sourcecode]

Setelah script diatas seleasi ditulis, maka langkah selanjutnya memindahkan file ini ke path /etc/init.d/server dan memberikan izin eksekusi dengan perintah chmod +x server.
Jika masih bingung silahkan posting comment untuk memperjelas maksud perintah diatas... sekian dan terima kasih...

No comments :

Post a Comment

Tuesday, February 7, 2012

Menjalankan Aplikasi Java Sebagai Service di Ubuntu

Saat bikin aplikasi java yang sudah berjalan, saya punya rencana untuk buat aplikasi ini sebagai service di ubuntu. Nah, permasalahannya adalah ada berbagai macam cara yang bisa digunakan menjadikan aplikasi java sebagai service di linux. Misalnya Java Service Wrapper, JSVC, YAJWS, dan masih banyak lagi. Namun, apa bisa dikata saya butuh yang cepat dari latar belakang keilmuwan saya, akhirnya pilihan jatuh ke daemon.

Langsung saja ke TKP....

Untuk bisa menjadikan Aplikasi Java anda berjalan sebagai daemon, langkah pertama yang perlu anda lakukan adalah install daemon dengan perintah sebagai berikut :

[sourcecode language="css"]
sudo apt-get install daemon
[/sourcecode]

okey, jika instalasi sudah berjalan lancar, saya akan bahas secara singkat cara menggunakan daemon untuk menjadikan aplikasi sebagai services.
Membuat Sebuah Services (Start Services)

Perintah di bawah ini digunakan untuk menjalankan sebuah service.

[sourcecode language="css"]
sudo daemon --name="ngeping" -- ping localhost
[/sourcecode]

Keterangan:
--name="ngeping" --> digunakan untuk memberikan nama service yang dijalankan

-- ping localhost --> adalah aplikasi yang akan dijadikan services

Jadi pada saat anda menuliskan perintah "sudo daemon --name="ngeping" -- ping localhost" pada terminal linux, daemon akan menjalankan aplikasi ping secara tersembunyi. Pertanyaan nya, bagaimana cara melihat hasil ping yang sedang berlangsung?
Begini perintahnya :

[sourcecode language="css"]
sudo daemon --name="ngeping" --output=/tmp/ping.log -- ping localhost
tail -f /tmp/ping.log
[/sourcecode]

hasilnya kira-kira begini :

[sourcecode language="css"]
root@nunenuh:~/# tail -f /tmp/ping.log
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.077 ms
64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.064 ms
64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.056 ms
64 bytes from localhost (127.0.0.1): icmp_req=4 ttl=64 time=0.059 ms
64 bytes from localhost (127.0.0.1): icmp_req=5 ttl=64 time=0.065 ms
64 bytes from localhost (127.0.0.1): icmp_req=6 ttl=64 time=0.098 ms
^C
[/sourcecode]

Mematikan Service Yang Telah Anda Buat

okey, jika barusan anda berhasil untuk membuat sebuah service, selanjutnya adalah cara mematikan nya. Untuk mematikan sebuah service yang telah anda buat. Perintahnya adalah sebagai berikut:

[sourcecode language="css"]
sudo daemon --name="ngeping" --stop
[/sourcecode]

Okey perinah diatas digunakan untuk mematikan service yang telah anda buat, tapi bagaiman cara melihat services yang telah anda buat sudah tidak aktif lagi?

Melihat Status Service Yang Telah Anda Buat

Cara untuk mengetahui services yang anda jalankan masih berjalan atau sudah tidak aktif adalah dengan menggunakan perintah --running yang dipadukan dengan --verbose, berikut ini perintahnya :

[sourcecode language="css"]
sudo daemon --name="ngeping" --pidfile=/var/run/ngeping.pid --running --verbose
[/sourcecode]

hasilnya kira-kira sebagai berikut :

[sourcecode language="css"]
root@nunenuh:~/# daemon --name="ngeping" --pidfile=/var/run/ngeping.pid --running --verbose
daemon: ngeping is running (pid 30224)
[/sourcecode]

Pada perintah diatas anda bisa melihat ada perintah "--pidfile=/var/run/ngeping.pid", perintah ini digunakan untuk menyatakan lokasi file Proccess-ID (PID) yang secara default pada ubuntu berada pada path /var/run. Sedangkan ngeping.pid secara automatis dibuat oleh daemon dengan perintah --name="ngeping", sehingga pada path /var/run/ aplikasi daemon membuat sebuah file dengan nama ngeping.pid.

Membuat Service untuk Aplikasi Java

Keetiga dasar diatas sangat penting untuk Anda ketahui sebelum memulai membuat sebuah file yang bisa digunakan untuk membuat service pada ubuntu. Langkah selanjutnya adalah membuat sebuah file untuk menjalankan service, tapi sebelumnya izinkan saya menjelaskan skenario kasusnya terlebih dahulu. Okey begini skenarionya :

  • Aplikasi Java yang sudah saya bangun memiliki nama server.jar

  • Lokasi file Aplikasi Java yang sudah saya bangun berada pada /opt/server/server.jar

  • JRE yang saya gunakan JRE 1.7


Supaya lebih singkat penulisan saya, lihat script dibawah ini :

[sourcecode language="css"]
#!/bin/sh

#----------------------
# InitScript untuk Server
#----------------------
# Script ini digunakan untuk mengontrol server
# Author Lalu Erfandi Maula Yusnu

#--------------------
#PERSIAPAN
#--------------------
#konfigurasi script
ServiceName="server"
ServiceHome="/opt/server"
ServiceFile="$ServiceHome/$ServiceName.jar"
ServiceLogFile="/var/log/$ServiceName.log"
ServicePidFile="/var/run/$ServiceName.pid"

#command for running epanel
javaCmd="java -jar"
javaRunCmd="$javaCmd $ServiceFile"
dName="--name=$ServiceName"
dLog="--output=$ServiceLogFile"
dPid="--pidfile=$ServicePidFile"

#------------------
# AKHIR PERSIAPAN
#------------------

#-----------------------
# PENDEFINISIAN FUNGSI-FUNGSI
#-----------------------

daemon_start(){
sudo daemon $dName $dLog $dPid --unsafe -- $javaRunCmd
echo "Starting server service..."
}

daemon_stop(){
sudo daemon $dName --stop -- $javaRunCmd
echo "Stopping server service..."
}

daemon_restart(){
daemon_stop
daemon_start
echo "Restarting server service complete..."
}

daemon_status(){
sudo daemon $dName $dPid --running --verbose
}

#-----------------------------------
# AKHIR PENDEFINISIAN FUNGSI-FUNGSI
#-----------------------------------

#-----------------------
# IN ACTION
#-----------------------

case "$1" in
start)
daemon_start
;;
stop)
daemon_stop
;;
restart)
daemon_restart
;;
status)
daemon_status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac

exit 0
[/sourcecode]

Setelah script diatas seleasi ditulis, maka langkah selanjutnya memindahkan file ini ke path /etc/init.d/server dan memberikan izin eksekusi dengan perintah chmod +x server.
Jika masih bingung silahkan posting comment untuk memperjelas maksud perintah diatas... sekian dan terima kasih...

No comments :

Post a Comment