diff options
author | Simon Rettberg | 2014-06-27 21:24:27 +0200 |
---|---|---|
committer | Simon Rettberg | 2014-06-27 21:24:27 +0200 |
commit | 5b4c21b01150153d27da941ae8be017359125c5d (patch) | |
tree | 42fc89e26f0bb279f43654fee2fa9877d20b9fa8 /src/main/java/org/openslx/taskmanager/tasks/Reboot.java | |
parent | Fix concurrent modification issue (diff) | |
download | tmlite-bwlp-5b4c21b01150153d27da941ae8be017359125c5d.tar.gz tmlite-bwlp-5b4c21b01150153d27da941ae8be017359125c5d.tar.xz tmlite-bwlp-5b4c21b01150153d27da941ae8be017359125c5d.zip |
New Tasks
Diffstat (limited to 'src/main/java/org/openslx/taskmanager/tasks/Reboot.java')
-rw-r--r-- | src/main/java/org/openslx/taskmanager/tasks/Reboot.java | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/taskmanager/tasks/Reboot.java b/src/main/java/org/openslx/taskmanager/tasks/Reboot.java new file mode 100644 index 0000000..c90289e --- /dev/null +++ b/src/main/java/org/openslx/taskmanager/tasks/Reboot.java @@ -0,0 +1,62 @@ +package org.openslx.taskmanager.tasks; + +import org.openslx.taskmanager.api.SystemCommandTask; + +public class Reboot extends SystemCommandTask +{ + private final Output status = new Output(); + + @Override + protected String[] initCommandLine() + { + return new String[] { + "/usr/bin/sudo", + "-n", + "-u", "root", + "/sbin/reboot" + }; + } + + @Override + protected boolean processEnded( int exitCode ) + { + return exitCode == 0; + } + + @Override + protected void processStdOut( String line ) + { + status.addMessage( line ); + } + + @Override + protected void processStdErr( String line ) + { + status.addMessage( line ); + } + + @Override + protected boolean initTask() + { + this.setStatusObject( status ); + return true; + } + + /** + * Output - contains additional status data of this task + */ + class Output + { + private String messages = null; + + private void addMessage( String str ) + { + if ( messages == null ) { + messages = str; + } else { + messages += "\n" + str; + } + } + } + +} |