[英]How to stop an Apache 2 HTTP server from a Java program?
我在Java程序中啟動Apache HTTP服務器。 不幸的是,我無法通過“ httpd.exe -k stop”命令從程序中停止服務器。 錯誤消息是“(OS 5)訪問被拒絕。:無法打開Apache2.2服務”。 我的操作系統是Windows7。如何從Java程序停止服務器? (不能手動停止服務器。)
更新:我不能更改Windows權限。
一個骯臟但普通的java解決方案是調用:
Runtime.getRuntime().exec("taskkill /F /IM httpd.exe");
可能可以編寫一個CGI腳本,將其部署到Apache中並從Java調用它。
從理論上講,腳本將以與Apache本身相同的特權運行,並且可以包含停止服務器所需的代碼(apachectl -k stop)。
為了安全起見,CGI腳本僅接受本地主機連接,並且需要密碼。 如果滿足所有要求,它將發出上面的電話。
1)。 轉到開始2)。 在搜索框中,鍵入“服務” 3)。 單擊“服務”,您將從列表中找到安裝的apache。 4)。 選擇apache,您將在屏幕左側找到啟動/重新啟動/停止的選項,或者通過右鍵單擊apache來找到啟動/重新啟動/停止的選項。 5)。 此后不言自明。 注意1:-如果諸如啟動/重新啟動/停止之類的更改未立即生效,則可能必須重新啟動Windows。 注意2:-這是您的問題的替代解決方案。 最佳實踐是通過Apache應用程序本身重新啟動。 盡管如此,至少到目前為止,上述方法大部分仍然有效。
看起來您需要以管理員身份運行程序。 看一下這個問題: Java:以管理員身份運行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.