2012-02-19 24 views
5

私はbashファイルを書いています。私はbashファイルからapachectlを起動する必要があります。ので、私が書いた:bashからapachectlを開始する

apachectl: command not found 

私が検索し、私は、私はsu -ないsu

スーパーユーザーでなければならないことが見つかりました:

apachectl start 

私はルートでそれを実行すると、エラーが発生しました

今、私は知りたい:

  • なぜこのエラーが発生しましたか?

  • どうすればsuで実行できますか?

+2

apachectl'がパスにない 'のように見えます。 'find/-name apachectl'を実行してみてください。 – cnicutar

+0

ありがとう、それは/ usr/sbin /にあったので、ありがとう! –

答えて

4

"apachectl"がパスに含まれていないため、コマンドが見つかりませんでした。コマンドのフルパスを使用するだけです(例:あなたが許可拒否エラーが発生した場合

を開始/etc/init.d/apachectl、その後、別のユーザーとして実行する必要があります。しかしそれは別の問題です。

11

シェルスクリプトでは、実行可能ファイルが$ PATHにあるディレクトリ以外のコマンドを実行するには、フルパスを使用する必要があります。例えば のapachectlのバイナリが配置されている場所、見つける:

which apachectl 

または

whereis apachectl 

、あなたのようなものでしょう。それを使用するので、

/usr/local/sbin/apachectl 

を。

2

コマンドapachectlが環境パスにないと思われます。 apachectlが存在するディレクトリを探してPATHに追加するか、フルパスで開始してください。最新のディストリビューションではsudoを使用してユーザーに昇格権を与えることができるので、利用可能であればsudoを使用してください。

3

その後、あなたはその後、(これはfindコマンドからの位置であると仮定した場合)、ステータスコマンドを実行することにより、

/usr/local/sbin/apachectl status 

それをテストすることができapachecetl

find/-name apachectl 

を見つけ最初にfindコマンドを使用することができます使用して、すべてのhttpdサービスを殺す問題

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

まずあるかどうApacheを再起動する必要があります...

sudo killall -9 httpd 

次に、apachectlを見つけます。 ctrl + rを押して「apachectl」という単語を入力する。「apachectl」のパスを見つける。選択した後

sudo <path>/apachectl stop|start 
+0

起動後apache sudo service httpd start – diegohsi

関連する問題