
Perl スクリプト内から Apache を再起動するには、これだけで十分ですか?
system("C:\\Apache24\\bin\\httpd.exe -k restart");
実際に Apache が再起動されるか確認しようとしましたが、Apache ログ ファイルが見つかりません。Windows タスク マネージャーの [サービス] タグを見ると、Apache サービスは更新された PID 番号を取得していませんでした。また、Windows の [コンピューターの管理] > [システム ツール] > [イベント ビューアー] > [Windows ログ] タブで、Apache が再起動したかどうかを示すアクティビティがないか確認しましたが、アクティビティは見つかりませんでした。そして、このコードが機能しているかどうかはわかりません。
私はただ
system("C:\\Apache24\\bin\\httpd.exe -k stop");
そしてそれが Apache を殺したかどうかを確認します...
アップデート: 私はコマンドプロンプトウィンドウでそれを止めようとしましたが、
(OS 5)アクセスが拒否されました。: AH10014: 'Apache2.4' サービスを開けませんでした
... 後で分かったのですが、私は管理者特権のコマンド プロンプト ウィンドウで実行していませんでした。そのため、おそらく Perl スクリプトにもそのコマンドを実行する権限がなかったのでしょう。
答え1
この Perl スクリプトは次のように動作します:
system("C:\\Apache24\\bin\\httpd.exe -k restart");
ただし、管理者/昇格されたコマンドで実行された場合のみです。