Linux: process into a service Linux: process into a service linux linux

Linux: process into a service


That depends on your system manager

the most common way to do that on debian/ubuntu is to build an initscript and place it in /etc/init.d or /etc/rc/init.d and place a script named mytestprogram in that.

this is an example initscript:

#!/bin/sh### BEGIN INIT INFO# Provides:          testone# Required-Start:    $local_fs# Required-Stop:     $local_fs# Default-Start:     2 3 4 5# Default-Stop:      0 1 6# X-Interactive:     false# Short-Description: Example init script# Description:       Start/stop an example script### END INIT INFODESC="test script"NAME=testone#DAEMON=do_start(){   echo "starting!";}do_stop(){   echo "stopping!"}case "$1" in   start)     do_start     ;;   stop)     do_stop     ;;esacexit 0

I suggest you to look some scripts in that directory, It's simple if you know bash a little ;)


Here is a sample shell script (make sure you replace the MAT name with the name of the your application):

I create one GitHubGist with the latest version of my script and a brief explanation to help those who need it. GitHub Gist link

#!/bin/bash### BEGIN INIT INFO# Provides:                 MATH# Required-Start:           $java# Required-Stop:            $java# Short-Description:        Start and stop MATH service.# Description:              -# Date-Creation:            -# Date-Last-Modification:   -# Author:                   -### END INIT INFO# VariablesPGREP=/usr/bin/pgrepJAVA=/usr/bin/javaZERO=0# Start the MATHstart() {    echo "Starting MATH..."    #Verify if the service is running    $PGREP -f MATH > /dev/null    VERIFIER=$?    if [ $ZERO = $VERIFIER ]    then        echo "The service is already running"    else        #Run the jar file MATH service        $JAVA -jar /opt/MATH/MATH.jar > /dev/null 2>&1 &        #sleep time before the service verification        sleep 10        #Verify if the service is running        $PGREP -f MATH  > /dev/null        VERIFIER=$?        if [ $ZERO = $VERIFIER ]        then            echo "Service was successfully started"        else            echo "Failed to start service"        fi    fi    echo}# Stop the MATHstop() {    echo "Stopping MATH..."    #Verify if the service is running    $PGREP -f MATH > /dev/null    VERIFIER=$?    if [ $ZERO = $VERIFIER ]    then        #Kill the pid of java with the service name        kill -9 $($PGREP -f MATH)        #Sleep time before the service verification        sleep 10        #Verify if the service is running        $PGREP -f MATH  > /dev/null        VERIFIER=$?        if [ $ZERO = $VERIFIER ]        then            echo "Failed to stop service"        else            echo "Service was successfully stopped"        fi    else        echo "The service is already stopped"    fi    echo}# Verify the status of MATHstatus() {    echo "Checking status of MATH..."    #Verify if the service is running    $PGREP -f MATH > /dev/null    VERIFIER=$?    if [ $ZERO = $VERIFIER ]    then        echo "Service is running"    else        echo "Service is stopped"    fi    echo}# Main logiccase "$1" in    start)        start        ;;    stop)        stop        ;;    status)        status        ;;    restart|reload)        stop        start        ;;  *)    echo $"Usage: $0 {start|stop|status|restart|reload}"    exit 1esacexit 0


In Ubuntu you can create the file as explained above with few lines, play around and see if it works for you.

description "My prog"  start on (net-device-up          and local-filesystems          and runlevel [2345])stop on runlevel [!2345] respawnrespawn limit 10 5 setuid rootsetgid shnmon script    /usr/local/bin/my_script -config.path /etc/myprog/yourconfig.xyz -children false >> /var/log/myprog.log 2>&1end script