
Ist das alles, was ich brauche, um Apache aus meinem Perl-Skript heraus neu zu starten?
system("C:\\Apache24\\bin\\httpd.exe -k restart");
Ich habe versucht zu überprüfen, ob Apache dadurch tatsächlich neu gestartet wird, kann aber meine Apache-Protokolldatei nicht finden. Und als ich im Windows Task-Manager unter dem Tag „Dienste“ nachgesehen habe, hat der Apache-Dienst keine neue PID-Nummer erhalten. Ich habe auch geprüft, ob ich in den Registerkarten „Computerverwaltung“ > „Systemprogramme“ > „Ereignisanzeige“ > „Windows-Protokolle“ von Windows Aktivitäten sehen konnte, um Hinweise darauf zu erhalten, dass Apache einen Neustart durchgeführt hat, habe aber keine Aktivitäten gefunden. Und jetzt bin ich mir nicht sicher, ob dieser Code funktioniert.
Ich schätze, ich könnte einfach ein
system("C:\\Apache24\\bin\\httpd.exe -k stop");
und sehen Sie, ob das Apache getötet hat ...
Aktualisieren: Ich habe versucht, es in meinem cmd-Fenster zu stoppen und bekam
(OS 5)Der Zugriff wird verweigert.: AH10014: Der Dienst „Apache2.4“ konnte nicht geöffnet werden.
... wie sich herausstellte, war das Eingabeaufforderungsfenster nicht mit einem erhöhten Administratorrechten geöffnet. Daher hatte das Perl-Skript wahrscheinlich auch nicht das Recht, diesen Befehl auszuführen.
Antwort1
Dieses Perl-Skript funktioniert:
system("C:\\Apache24\\bin\\httpd.exe -k restart");
aber nur, wenn es in einem administrativen/erhöhten Befehl ausgeführt wird.