Apacheを再起動する別の方法は?


11

ここにApacheの質問があります。

開発者としてのキャリア全体で、Apacheを次のように再起動しています。

sudo /etc/init.d/apache2 restart

今日、最初のRailsアプリケーションをデプロイしましたが、ホストマシンでApacheを再起動するのに問題がありました。その方法で試してみると、Apacheは再起動しようとしましたが、最終的にハングしました。

ただし、これはうまくいきました。

sudo apachectl restart

これら2つの手法の違いは何ですか?私は後者が最初の場合はせいぜい「構文糖」であると仮定していましたが、前者は機能しなかったが後者は機能したことを考えると、そうではないはずです。

関連性がある場合(およびそうであると思われる場合)、このRailsアプリケーションはPhusion Passengerを使用します。私の以前の開発経験(前者の方法はうまく機能します)は、ほとんどがPHPを使用しています。私はRailsが初めてです。

問題のサーバーはUbuntu 11.04(Natty)を実行しています。


1
私は確信してどのように異なるの前の2からの場合、すべてではないんだが、もう一つの選択肢は、サービスapache2の再起動である
フィル・

回答:


6
sudo /etc/init.d/apache2 restart

この方法では、Linuxディストリビューションのinitスクリプトを使用してプロセスを再起動します。これらのスクリプトは、起動時にApacheを起動するために実行されます。

sudo apachectl restart

この方法では、apachectl制御プログラムを使用します。ほとんどの場合、apacheデーモンを操作するためにapachectlを使用することをお勧めします。プロセスの再起動方法(グレースフルと再起動を参照)、構成検証オプション、およびステータス情報を取得する方法を、よりきめ細かく制御できます。

initスクリプトを使用してapacheとapachectlを再起動することの主な違いは、apachectlは管理者がapacheを制御できるように特別に設計されているのに対し、initスクリプトはUnixとカーネルとinit daeamonがロードされた後にプロセスを開始する一般的な方法として設計されていることです。

編集:残念ながら、RailsまたはPhusion Passengerの問題に対処する方法はわかりません。手がかりについては、Apacheログを調べてみてください。


2
OSが再起動し、サービスapache2の起動が機能しない場合、OSはどうなると思いますか?apachectlの使用はテストや開発作業には適していますが、サーバーを実行すると問題が発生します。rc.localに固定することも解決策ではありません。
カシャニ

私は質問の半分だけに答えていることを言及する必要があります:apacheを再起動する2つの方法の違い。残念ながら、私はRailsについて何も知らない...最初の回で、それをちょっと読んでみた。

助けてくれてありがとう。それは私にとって2つの違いを明確にしました。Railsに関しては、ここに投稿する前に実際にそれを解決していました。apachectlは実際にはチャンピオンのように機能しましたが、init.dメソッドは機能しませんでした。だから今私は知っています!ありがとう。
クリスアレンレーン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.