ここにApacheの質問があります。
開発者としての私のキャリア全体を通して、私は次のようにApacheを再起動してきました。
Sudo /etc/init.d/Apache2 restart
今日、最初のRailsアプリケーションをデプロイしましたが、ホストマシンでApacheを再起動するのに問題がありました。そのようにしようとすると、Apacheは再起動を試みましたが、最終的にはハングしました。
ただし、これは正常に機能しました。
Sudo apachectl restart
これら2つのテクニックの違いは何ですか?私は後者がせいぜい最初の「シンタックスシュガー」であると思っていましたが、後者は機能し、前者は機能しなかったことを考えると、そうではないはずです。
関連性がある場合(そしておそらくそうかもしれませんが)、このRailsアプリケーションはPhusionPassengerを使用します。以前の開発経験(前者の方法で問題なく動作します)はほとんどPHPを使用しています。 Railsへ。
問題のサーバーはUbuntu11.04(Natty)を実行しています。
Sudo /etc/init.d/Apache2 restart
このメソッドは、Linuxディストリビューションの initスクリプト を使用してプロセスを再開します。これらのスクリプトは、Apacheを起動するために起動時に実行されます。
Sudo apachectl restart
このメソッドは apachectl 制御プログラムを使用します。ほとんどの場合、apachectlを使用してApacheデーモンを操作することをお勧めします。プロセスの再起動方法(グレースフルと再起動を参照)、構成検証オプション、およびステータス情報を取得する方法をよりきめ細かく制御できます。
Initスクリプトを使用してApacheとapachectlを再起動する主な違いは、apachectlは管理者がApacheを制御できるように特別に設計されているのに対し、initスクリプトはカーネルとinitdaeamonがロードされた後にUnixがプロセスを開始する一般的な方法として設計されていることです。
編集:残念ながら、RailsまたはPhusionPassengerで問題に対処する方法がわかりません。 Apacheログ 手がかり。