Comment returnner "on" ou "off" pour: chkconfig –list | grep httpd

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