Wie stelle ich eine Verbindung zu einem Linux-Server her und stoppe / starte einen Dienst mit einem Shell-Skript? - Linux, Shell

Ich möchte ein Skript einrichten, das mit einem verbinden wirdLinux-Server und dann stoppen / starten Sie einen Dienst. Aber zwischen dem Stopp und dem Start des Dienstes sollte es ~ 10 Sekunden warten und prüfen, ob der Dienst wirklich gestoppt ist.

service httpd stop
--wait 10 seconds. check ps -ef | grep httpd, kill if any hanged processes
service httpd start

Kann mir bitte jemand helfen, wie es geht?

Antworten:

1 für die Antwort № 1

Das wait Befehl ist für einen anderen Zweck, wir müssen die verwenden sleep Befehl stattdessen.

Überprüfen Sie diesen Link für detaillierte Unterschiede. https://stackoverflow.com/a/13296927/3086531


Skript, um zu überprüfen, ob der Prozess läuft oder nicht

#!/bin/bash
UP=$(pgrep httpd | wc -l);
if [ "$UP" -ne 1 ];
then
echo "httpd is down.";
else
echo "All is well.";
fi

Dein endgültiger Code wäre

#!/bin/bash

service httpd stop

sleep 10

UP=$(pgrep httpd | wc -l);
if [ "$UP" -ne 1 ];
then
service httpd start  #start serivce again, since no process are found
else
echo "Service is not stopped yet.";
killall -15 httpd  #Kills all processes related to httpd
service httpd start #start httpd process
fi

Am beliebtesten