GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux:in einen Dienst verarbeiten

Das hängt von Ihrem Systemmanager ab

Der gebräuchlichste Weg, dies unter Debian/Ubuntu zu tun, besteht darin, ein Initskript zu erstellen und es in /etc/init.d zu platzieren oder /etc/rc/init.d und platzieren Sie ein Skript namens mytestprogram darin.

Dies ist ein Beispiel-Initskript:

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

Ich schlage vor, dass Sie sich einige Skripte in diesem Verzeichnis ansehen. Es ist einfach, wenn Sie ein wenig bash kennen;)


Hier ist ein Beispiel für ein Shell-Skript (stellen Sie sicher, dass Sie den MAT-Namen durch den Namen Ihrer Anwendung ersetzen):

Ich erstelle einen GitHubGist mit der neuesten Version meines Skripts und einer kurzen Erklärung, um denjenigen zu helfen, die ihn benötigen. 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

# 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. Linux-Betriebssystemdienst „iptables“

  2. Linux-Betriebssystemdienst „Netzwerk“

  3. Linux-Betriebssystemdienst „portmap“

  4. Linux-Betriebssystemdienst „auditd“

  5. Linux-Betriebssystemdienst „nfs“

Linux-Betriebssystemdienst „dhcpd“

Linux-Betriebssystemdienst „anacron“

Linux-Betriebssystemdienst „hplip“

Linux-Betriebssystemdienst „irqbalance“

Linux-Betriebssystemdienst „rpcgssd“

Linux-Betriebssystemdienst „yum-updatesd“