commencer apachectl de bash

J’écris un fichier bash. Je dois lancer apachectl partir de mon fichier bash. alors j’ai écrit:

 apachectl start 

Lorsque je l’exécute avec root, une erreur s’est produite:

 apachectl: command not found 

J’ai cherché et j’ai trouvé que, je devrais être super utilisateur avec su - pas su

Maintenant, je veux savoir:

  • pourquoi cette erreur s’est produite?

  • Comment pourrais-je le lancer avec su ?

L’erreur de commande introuvable est que “apachectl” n’est pas sur votre chemin. Utilisez simplement le chemin complet de la commande, par exemple

/etc/init.d/apachectl start

Si vous obtenez une erreur de refus d’autorisation, vous devez alors exécuter en tant qu’utilisateur différent. C’est un problème différent cependant.

Dans les scripts shell, vous devez utiliser des chemins complets pour exécuter la commande, sauf si le répertoire contient déjà un exécutable dans $ PATH. Par exemple, trouvez où se trouve apachectl binary:

 which apachectl 

ou

 whereis apachectl 

et vous obtiendrez quelque chose comme:

 /usr/local/sbin/apachectl 

Alors, utilise ça.

Utilisez la commande find pour localiser apachecetl

 find / -name apachectl 

Ensuite, vous pouvez le tester en exécutant la commande status (en supposant qu’il s’agit de l’emplacement de la commande find)

 /usr/local/sbin/apachectl status 

Ensuite, vous devrez peut-être redémarrer apache en cas de problème

 /usr/local/apache/bin/apachectl restart 

Il semble que la commande apachectl ne soit pas dans le chemin de votre environnement. Localisez le répertoire où apachectl réside et ajoutez-le à votre PATH ou démarrez-le avec le chemin d’access complet. La plupart des dissortingbutions modernes utilisent sudo pour permettre aux utilisateurs d’obtenir des droits élevés. Vous devez donc utiliser sudo , si disponible.

Commencez par tuer tous les services httpd en utilisant …

 sudo killall -9 httpd 

Deuxièmement, trouver apachectl. Appuyez sur ctrl + r dans le terminal entrez un mot “apachectl” Pour trouver le chemin de “apachectl”.

Après sélectionnez:

 sudo /apachectl stop|start