Linux Bash Script Service

OpenMedia

Lieutenant
Registriert
Okt. 2016
Beiträge
707
Hallo zusammen,

ich habe ein Service für Linux programmiert, hier benötige ich nur Hilfe bei der Restart - Usage.

Wie kann ich in der folgenden Zeile einfach den entsprechenden Service zunächst stoppen und neustarten ?

restart|reload)
echo "Stop Service and Start"
Service stop ????
Service start ???
;;
*)

Ich möchte nicht den vollen Pfad eintippen und stoppen. Nach dem Motto

/etc/init.d/MeinService stop
/etc/init.d/MeinService start

Da muss es doch eigentlich eine saubere Lösung geben.
 
da die meisten distributionen heute systemd verwenden, braucht du nur eine "service" datei erstellen. ein minimal-beispiel gibt es z.b. hier, die komplette doku hier. ein restart ist für systemd einfach die abfolge von stop+start.
 
  • Gefällt mir
Reaktionen: spcqike
Das ist ein Teil von /etc/init.d/crony (debian)
Code:
case "$1" in
    start)
        if $0 status > /dev/null ; then
            log_success_msg "$NAME is already running"
        else
            log_daemon_msg "Starting $DESC" "$NAME"
            start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
            log_end_msg $?
        fi
        ;;

    stop)
        log_daemon_msg "Stopping $DESC" "$NAME"
        start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
        log_end_msg $?
        ;;

    restart|force-reload)
        $0 stop
        $0 start
        ;;

    status)
        status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $?
        ;;

    *)
        log_action_msg "Usage: /etc/init.d/chrony {start|stop|restart|force-reload|status}"
        exit 1
        ;;
esac

exit 0

Warum der Code noch auf dem System ist, ist mir nicht klar, da eigentlich systemd verwendet wird.
Ergänzung ()

OpenMedia schrieb:
Ich möchte nicht den vollen Pfad eintippen und stoppen
Da muss es doch eigentlich eine saubere Lösung geben.

So lange ist der Pfad jetzt nicht. Dafür gibt es TAB-Completion ...

Je nach OS gibt/gab es wrapper, aber fast alle Linux Distributionen verwenden heute systemd (leider)

Also systemctl status|start|stop|reload|restart <mein>.service
 
Zuletzt bearbeitet:
Zurück
Oben