Dans la plupart des services (par exemple, privoxy), il existe un moyen propre d’obtenir l’état du service: ps -C [servicename]
puis en vérifiant le code de sortie ($?)
: 0: le service était en cours d’exécution 1: ne fonctionnait pas Ce n’est pas le cas in ufw (non reconnu en tant que service?) Le Sudo service ufw status
se ferme toujours à 0, que ufw soit en cours d'exécution ou non. Des suggestions pour obtenir ufw par programme via le code de sortie de la commande utilisée pour vérifier le statut ufw?
Comme le code de sortie renvoyé par Sudo ufw status
est toujours égal à 0, il vous suffit d'indiquer grep
pour la valeur de statut:
$ Sudo ufw status
Status: inactive
$ Sudo ufw status | grep -qw active
$ echo $?
1
Pour fonctionner correctement, vous devez utiliser l'option -w
, à partir de man grep
:
-w, --Word-regexp
Select only those lines containing matches that form whole
words. The test is that the matching substring must either be
at the beginning of the line, or preceded by a non-Word
constituent character. Similarly, it must be either at the end
of the line or followed by a non-Word constituent character.
Word-constituent characters are letters, digits, and the
underscore.
-q
n'est que le mode silencieux, rien n'est écrit en sortie standard
Pour vérifier le statut d'utilisation d'UFW
Sudo ufw status verbose
La sortie est similaire à
my@machine:~$ Sudo ufw status verbose
[Sudo] password for youruser:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip