簡體   English   中英

如何從Java程序停止Apache 2 HTTP服務器?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM