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