Ich habe ein einfaches Skript wie das folgende, das prüft, ob der fail2ban- Dienst unter Ubuntu 18.04 ausgeführt wird oder nicht:
#!/bin/bash
# Script to check if fail2ban service is running
if pgrep -x "fail2ban" > /dev/null
then
echo "Fail2ban is running"
else
echo "Fail2ban is not running"
fi
Ich habe fail2ban in einer Test-VM installiert und läuft auf der VM. Hier ist ein Screenshot des systemctl status
Befehls.
Aber wenn das obige Skript ausgeführt wird, erhalte ich das Ergebnis, dass "Fail2ban nicht ausgeführt wird". Ich bin nicht sicher, ob es mit dem Skript ist. Ich habe auch versucht, ps aux
Befehl statt pgrep
. Aber ich bekomme immer noch das gleiche Ergebnis .
fail2ban-server
(mit einem Bindestrich); pgrep -x fail2ban.server
findet es, weil es eine Regex-Übereinstimmung ist ( .
entspricht der -
) und systemctl status fail2ban.service
sagt zum Beispiel Main PID: 2721 (fail2ban-server)
. Der Servicename ist fail2ban.serv ice, glaube ich.
/usr/bin/python3
.
ps
, wenn Sie es verwenden könnensystemctl is-active fail2ban
? FWIW Ihr Befehl schlägt wahrscheinlich fehl, weil Sie eine genaue Übereinstimmung angegeben haben (-x
), aber der Prozessname ist tatsächlichfail2ban.server