How to Daemonize a Java Program?

I have a Java program that I’d like to daemonize on a linux system.
In other words, I want to start running it in a shell and have it continue running after I’ve logged out.
Even After I reboot my system, my java program should be up and running like any other daemon service (sshd etc..)
I also want to be able to stop the program cleanly.

What’s your preferred method to daemonize a Java program on a Linux system?

I have Java Archive (vm.jar) , I want to run this Jar as an UNIX Service. Here are steps I followed to achieve that

  1. Install daemon tools from the URL  https://cr.yp.to/daemontools/install.html  and follow the instruction mentioned there,for any issues please try instructions  error.h
  2. Create a file at /etc/init/svscan.conf and add the below lines.(only required for cent-os-6.7)

start on runlevel [12345]
stop on runlevel [^12345]
respawn
exec /command/svscanboot

3. Create a new script named run inside /service/vm/ folder and add the below lines.

#!/bin/bash
echo starting VM
exec java -jar /root/learning-/daemon-java/vm.jar

 Note:
replace the Jar with your own Jar file. or any java class file.

4. Reboot the system

5. svstat /service/vm should be up and running now !.

6. svc -d /service/vm should bring vm down now !.

7. svc -u /service/vm should bring vm up now !.

Advertisements

Enable eth0 centos-6.7

I have created a VM in virtual box using Centos-6.7. I have configured eth0 interface as bridge adapter. However I am not able to connect to internet. When I did ifconfig , I could only see loopback address as shown below.

ifconfig

ifconfig – displays the connected network interfaces.

ip link displays the available network interfaces on machine.

ip-link

ip-link – displays the available network interfaces

 

  1. add NETWORKING=yes in /etc/sysconfig/network file.
  2. create a new file called ifcfg-eth0 in /etc/sysconfig/network-scripts/ folder as shown below. ifcfg-eth0DEVICE=eth0
    BOOTPROTO=dhcp
    ONBOOT=yes
  3. save and reboot the machine.
  4. Now you should be able to see the eth0 network in ifconfigifconfig-eth0

ifup eth0 will throw an below error  “Configuration for eth0 not found “ unless we create a file in /etc/sysconfig/network-scripts/ifcfg-eth0 no-device-found

ifup eth0 throws “Device eth0 does not seem to be present, delaying initialization.”

rm -f /etc/udev/rules.d/70-persistent-net.rules  

restart