
Это все, что мне нужно для перезапуска Apache из моего скрипта Perl?
system("C:\\Apache24\\bin\\httpd.exe -k restart");
Я попытался проверить, действительно ли это перезапускает Apache, но не могу найти файл журнала Apache. И, просматривая диспетчер задач Windows под тегом «Службы», служба Apache не получила обновленный номер PID. Я также проверил, можно ли увидеть какую-либо активность в Windows Computer Management > System Tools > Event Viewer > Windows Logs, на предмет чего-либо, что могло бы намекнуть, что Apache действительно перезапускался, но не обнаружил никакой активности. И теперь я не уверен, работает ли этот код.
Я думаю, я мог бы просто сделать
system("C:\\Apache24\\bin\\httpd.exe -k stop");
и посмотрим, убьёт ли это Апачи...
Обновлять: Я попытался остановить его в окне cmd и получил
(OS 5) Доступ запрещен. : AH10014: Не удалось открыть службу «Apache2.4»
... оказалось, что я не работал под повышенными правами администратора: окно командной строки. Так что, вероятно, скрипт Perl также не имел права выполнять эту команду.
решение1
Этот скрипт Perl работает:
system("C:\\Apache24\\bin\\httpd.exe -k restart");
но только если он выполняется в административной/повышенной командной строке.