Deploying Java app as daemon
      
      Using Systemd
sudo pico /etc/systemd/system/service_name.service [Unit] Description=Service Name [Service] WorkingDirectory=/path/to/app PIDFile=/tmp/service_name ExecStart=/usr/lib/jvm/java-8-oracle/bin/java -cp "/path/to/libs/*:/path/to/app/my.jar" com.company.Main Restart=on-failure RestartSec=20 5 [Install] WantedBy=multi-user.target
Using init.d
sudo pico /etc/init.d/service_name
#!/bin/sh
# chkconfig: 2345 90 60
SERVICE_NAME=service_name
PATH_TO_JAR=/path/to/app/my.jar
PATH_TO_LIB=/path/to/libs/*
MAIN_METHOD=com.company.Main
PID_PATH_NAME=/tmp/service_name
LOG_PATH=/path/to/logs/service_name.log
case $1 in
    start)
        echo "Starting $SERVICE_NAME ..."
        if [ ! -f $PID_PATH_NAME ]; then
            nohup java -cp "$PATH_TO_LIB:$PATH_TO_JAR" $MAIN_METHOD 2>> $LOG_PATH >> $LOG_PATH &
            echo $! > $PID_PATH_NAME
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is already running ..."
        fi
    ;;
    stop)
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME);
            echo "$SERVICE_NAME stoping ..."
            kill $PID;
            echo "$SERVICE_NAME stopped ..."
            rm $PID_PATH_NAME
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
    restart)
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME);
            echo "$SERVICE_NAME stopping ...";
            kill $PID;
            echo "$SERVICE_NAME stopped ...";
            rm $PID_PATH_NAME
            echo "$SERVICE_NAME starting ..."
            nohup java -cp "$PATH_TO_LIB:$PATH_TO_JAR" $MAIN_METHOD 2>> $LOG_PATH >> $LOG_PATH &
            echo $! > $PID_PATH_NAME
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
esac
              Chrome On-device AI
              2025-10-20 14:54:13