2012-02-19 12 views
5

Sto scrivendo un file bash. Devo avviare apachectl dal mio file bash. Così ho scritto:avvio apachectl da bash

apachectl start 

Quando eseguo con radice, un errore si è verificato:

apachectl: command not found 

ho cercato e ho trovato che, dovrei essere Super User con su - non su

Ora, voglio sapere:

  • perché si è verificato questo errore?

  • Come è possibile eseguirlo con su?

+2

Sembra 'apachectl' non è nel tuo percorso. Prova 'find/-name apachectl'. – cnicutar

+0

sì grazie, era in/usr/sbin /, quindi grazie! –

risposta

4

Il comando non trovato errore è perché "apachectl" non è nel percorso. Utilizza semplicemente il percorso completo del comando, ad es.

/etc/init.d/apachectl start

Se si ottiene un errore di autorizzazione negata, allora avete bisogno di correre come un altro utente. Questo è un problema diverso però.

11

negli script di shell che si dovrebbe usare percorsi completi al fine di eseguire il comando a meno che directory con eseguibile già in $ PATH. Per esempio, trovare dove si trova apachectl binario:

which apachectl 

o

whereis apachectl 

e otterrete qualcosa di simile a:

/usr/local/sbin/apachectl 

Quindi, usare quella.

2

Sembra, che il comando apachectl non è nel tuo percorso ambienti. Individua la directory, dove risiede apachectl e aggiungilo al tuo PATH o avvialo con il percorso completo. La maggior parte delle distribuzioni moderne utilizza sudo per consentire agli utenti di ottenere diritti elevati, pertanto è necessario utilizzare sudo, se disponibile.

3

utilizzare il comando find per individuare innanzitutto apachecetl

find/-name apachectl 

Quindi è possibile testarlo eseguendo il comando di stato (supponendo che questa è la posizione del comando find)

/usr/local/sbin/apachectl status 

allora si può necessario riavviare apache in caso di problemi

/usr/local/apache/bin/apachectl restart 
0

Prima uccidere tutti i servizi httpd utilizzando ...

sudo killall -9 httpd 

Secondo, trovare apachectl. Premere ctrl + r nel terminale immettere una parola "apachectl" per trovare il percorso di "apachectl".

Dopo selezionare:

sudo <path>/apachectl stop|start 
+0

Dopo l'avvio, apache sudo service httpd start – diegohsi