Pour s'assurer que httpd est automatiquement démarré au redémarrage. Je lance simplement cette command
chkconfig httpd on
ce que je cherche est une façon d'être dit si ce paramètre est
on or off
au lieu de cette command
chkconfig --list | grep httpd
qui renvoie ceci
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Je comprends les niveaux mais vraiment ce dont j'ai besoin c'est
on or off
donc je peux l'insert dans un script et voir visuellement sur ou hors quotidiennement plutôt que quelque chose de complexe comme ci-dessus.
de la page man:
By default, the on and off options affect only runlevels 2, 3, 4, and 5, while reset and resetpriorities affects all of the runlevels. The --level option may be used to specify which runlevels are affected.
donc vous pouvez utiliser awk
pour extraire seulement ces niveaux (2,3,4,5):
chkconfig --list | grep httpd | awk '{ print $4 }' | cut -d ':' -f 2
et faire de même pour les autres niveaux (3,4,5) en remplaçant $4
par ( $5
$6
$7
)
chkconfig ne fait que placer des liens symboliques vers les services init-scripts habituellement trouvés dans /etc/init.d. Donc, au lieu de grepping und awk'ing la sortie de chkconfig, vous pouvez simplement vérifier l'existence du lien symbolique.
Quand je fais un chkconfig httpd on
, il crée un lien appelé /etc/rc3.d/S85httpd
, pointant vers init.d. chkconfig httpd off
supprime ce lien (et fait plus, mais ce n'est pas pertinent ici). Cela pourrait dépendre de la dissortingbution.
Donc, dans bash, vous pouvez faire [ -f /etc/rc3.d/S85httpd ]
, et si la valeur de return ( $?
) Est 0, le lien existe. Si c'est 1, ce n'est pas le cas, donc c'est éteint.
Les réponses données incorporent le niveau d'exécution dans le script, alors que la question semble requestr un seul "on" ou "off", ce qui implique qu'il est pour le niveau d'exécution actuel.
Il semble aussi que le fait que chkconfig
accepte un argument a été négligé, rendant un grep
redondant.
En outre, son format est cohérent, mettant toujours le niveau d'exécution avant les éléments on / off dans sa list. Il n'est pas nécessaire de countr les colonnes (et d'intégrer cela dans le travail que l'on doit faire pour utiliser la solution).
En tenant count de cela, voici un script qui affiche «on» ou «off» pour chaque service donné au niveau d'exécution actuel:
#!/bin/sh THIS=$(runlevel | sed -e 's/^. //') for svc in "$@" do chkconfig --list $svc 2>/dev/null | sed -e 's/^.*'$THIS'://' -e 's/[[:space:]].*//' done