2016-08-03 3 views
0

私はjspの開発者です。私はキーボードが入力に応答しなくなったときに、時々、ubuntuの "サーバ"を開発する遅い、応答の遅い、遅い(あなたがポイントを得る)をシャットダウンする必要があります。私は既にTomcatが正しく設定されており、キーボードが応答を停止しても、サーバーとして使用できます(Tomcatが提供するWebページにアクセスする)。私の考えは、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をする必要がある場合は、poweroffを呼び出すsetuidルートのCプログラムを書くことができます。 – user3486184

+0

これはできません。それは不可能です – Turtle

+0

これはひどい考えですが、あなたは 'sudo/sbin/shutdown -h now'を望みます。 openssh-serverをインストールし、リモートsshを使用してシャットダウンすることをお勧めします。 –

答えて

2

ユーザーで実行Tomcatはsudoのパーマ(/パスワード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

関連する問題