GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:processo in un servizio

Dipende dal tuo gestore di sistema

il modo più comune per farlo su debian/ubuntu è creare un initscript e metterlo in /etc/init.d o /etc/rc/init.d e inserisci uno script chiamato mytestprogram in quello.

questo è un esempio di 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 INFO

DESC="test script"
NAME=testone
#DAEMON=

do_start()
{
   echo "starting!";
}

do_stop()
{
   echo "stopping!"
}


case "$1" in
   start)
     do_start
     ;;
   stop)
     do_stop
     ;;
esac

exit 0

Ti suggerisco di cercare alcuni script in quella directory, è semplice se conosci un po' bash;)


Ecco uno script shell di esempio (assicurati di sostituire il nome MAT con il nome della tua applicazione):

Creo un GitHubGist con l'ultima versione del mio script e una breve spiegazione per aiutare chi ne ha bisogno. Collegamento GitHub Gist

#!/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

# Variables
PGREP=/usr/bin/pgrep
JAVA=/usr/bin/java
ZERO=0

# Start the MATH
start() {
    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 MATH
stop() {
    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 MATH
status() {
    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 logic
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status
        ;;
    restart|reload)
        stop
        start
        ;;
  *)
    echo $"Usage: $0 {start|stop|status|restart|reload}"
    exit 1
esac
exit 0

Linux
  1. Servizio del sistema operativo Linux 'dhcpd'

  2. Servizio del sistema operativo Linux "anacron"

  3. Servizio del sistema operativo Linux "iptables"

  4. Sistema operativo Linux Servizio "rete"

  5. Servizio del sistema operativo Linux "portmap"

Servizio del sistema operativo Linux "NetFS"

Servizio del sistema operativo Linux 'ldap'

Servizio del sistema operativo Linux 'yppasswdd'

Servizio del sistema operativo Linux "xendomains"

Servizio del sistema operativo Linux 'nscd'

Servizio del sistema operativo Linux "calamaro"