aboutsummaryrefslogtreecommitdiffstats
path: root/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandStop.java
diff options
context:
space:
mode:
Diffstat (limited to 'tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandStop.java')
-rw-r--r--tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandStop.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandStop.java b/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandStop.java
new file mode 100644
index 0000000000..c6b4cadd6c
--- /dev/null
+++ b/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandStop.java
@@ -0,0 +1,64 @@
+package uk.ac.cam.cl.xeno.domctl;
+
+import java.io.*;
+import java.net.*;
+
+public class CommandStop extends Command
+{
+ public int doCommand(Defaults d, String args[])
+ {
+ Runtime r = Runtime.getRuntime ();
+ int domain_id = getIntParameter(args, 'n', 0);
+ int rc = 0;
+
+ if (domain_id == 0) {
+ System.err.println ("Expected -n<domain_id>");
+ rc = -1;
+ return rc;
+ }
+
+ try
+ {
+ Process stop_p;
+ String stop_cmdarray[] = new String[2];
+ int stop_rc;
+ stop_cmdarray[0] = d.XIToolsDir + "xi_stop";
+ stop_cmdarray[1] = "" + domain_id;
+
+ if (Settings.TEST) {
+ reportCommand (stop_cmdarray);
+ } else {
+ stop_p = r.exec (stop_cmdarray);
+ stop_rc = stop_p.waitFor ();
+
+ if (stop_rc != 0) {
+ return reportXIError ("Could not stop domain", stop_cmdarray);
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ System.err.println ("Could not stop new domain (" + e + ")");
+ e.printStackTrace ();
+ rc = -1;
+ }
+
+ return rc;
+ }
+
+ public String getName()
+ {
+ return "stop";
+ }
+
+ public String getUsage()
+ {
+ return "[-n<domain_id>]";
+ }
+
+ public String getHelpText()
+ {
+ return
+ "Stop the specified domain.";
+ }
+}