2016-08-03 71 views
0

我是一名jsp開發人員。當它的鍵盤停止響應輸入時,我需要關閉我的緩慢,反應遲鈍,遲緩,(你明白了)開發Ubuntu的「服務器」。我已經正確配置了tomcat,即使當我的鍵盤停止響應時,我也可以將它用作服務器(訪問由tomcat提供的網頁)。我的想法是創建一個名爲sudo poweroff的jsp頁面。但我不知道該怎麼做。我試過如何在java中運行sudo poweroff

Runtime.getRuntime.exec("sudo poweroff"); 

但它不適用於我。我已經編輯了sudoers文件以允許tomcat用戶在不需要密碼的情況下執行此操作。我怎樣才能做到這一點?

+0

這可能會幫助您Runtime.exec():http://stackoverflow.com/questions/8877236/unable-to-execute-java-program-from-jsp-using-runtime-getruntime-exec。如果你需要sudo,你可以編寫一個C程序,它是setuid root,用於調用poweroff。 – user3486184

+0

你不能這樣做。這是不可能的 – Turtle

+0

這是一個可怕的想法,但你想'sudo/sbin/shutdown -h now'。安裝openssh-server並使用遠程ssh關閉它可能會更好。 –

回答

2

如果用戶運行Tomcat有須藤燙髮(W/OA密碼),它應該是可行的 - 但電話應該是這樣的:

Runtime.getRuntime().exec(new String[]{"sudo", "poweroff"});

的命令和參數不能全部通過一個大字符串傳遞。

檢查出文檔的更多信息:https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exec(java.lang.String[])

PS:這可能是一個壞主意。 :)

+0

java文檔也有[此方法](https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exec(java.lang.String)),所以你的答案是不正確,至少根據你給出的推理 – vikarjramun

+0

你試過了嗎?您引用的方法是針對不帶參數的命令。 – Larry