Index: /trunk/Ohana/src/opihi/pantasks/controller.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/controller.c	(revision 12466)
+++ /trunk/Ohana/src/opihi/pantasks/controller.c	(revision 12467)
@@ -1,22 +1,24 @@
 # include "pantasks.h"
 
-int controller_host    PROTO((int, char **));
-int controller_exit    PROTO((int, char **));
-int controller_status  PROTO((int, char **));
-int controller_run     PROTO((int, char **));
-int controller_stop    PROTO((int, char **));
-int controller_check   PROTO((int, char **));
-int controller_output  PROTO((int, char **));
-int controller_pulse   PROTO((int, char **));
+int controller_host    	PROTO((int, char **));
+int controller_exit    	PROTO((int, char **));
+int controller_status  	PROTO((int, char **));
+int controller_jobstack PROTO((int, char **));
+int controller_run     	PROTO((int, char **));
+int controller_stop    	PROTO((int, char **));
+int controller_check   	PROTO((int, char **));
+int controller_output  	PROTO((int, char **));
+int controller_pulse   	PROTO((int, char **));
 
 static Command controller_cmds[] = {
-  {"exit",   controller_exit,   "shutdown controller"},
-  {"host",   controller_host,   "define host for controller"},
-  {"check",  controller_check,  "check controller host/job"},
-  {"run",    controller_run,    "start controller operation / set run levels"},
-  {"stop",   controller_run,    "stop controller (no disconnect)"},
-  {"status", controller_status, "check controller status"},
-  {"output", controller_output, "print controller output"},
-  {"pulse",  controller_pulse,  "set controller pulse"},
+  {"exit",     controller_exit,     "shutdown controller"},
+  {"host",     controller_host,     "define host for controller"},
+  {"check",    controller_check,    "check controller host/job"},
+  {"run",      controller_run,      "start controller operation / set run levels"},
+  {"stop",     controller_run,      "stop controller (no disconnect)"},
+  {"status",   controller_status,   "check controller status"},
+  {"jobstack", controller_jobstack, "check controller status"},
+  {"output",   controller_output,   "print controller output"},
+  {"pulse",    controller_pulse,    "set controller pulse"},
 };
 
Index: /trunk/Ohana/src/opihi/pantasks/controller_jobstack.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/controller_jobstack.c	(revision 12467)
+++ /trunk/Ohana/src/opihi/pantasks/controller_jobstack.c	(revision 12467)
@@ -0,0 +1,37 @@
+# include "pantasks.h"
+
+int controller_jobstack (int argc, char **argv) {
+
+  int status;
+  char command[1024];
+  IOBuffer buffer;
+
+  if (argc != 2) {
+    gprint (GP_ERR, "USAGE: controller jobstack (jobstack)\n");
+    gprint (GP_ERR, "       (jobstack) : pending, busy, exit, crash, hung, done\n");
+    return (FALSE);
+  }
+
+  /* check if controller is running */
+  status = CheckControllerStatus ();
+  if (!status) {
+    gprint (GP_LOG, "controller is not active\n");
+    return (TRUE);
+  }
+
+  // XXX this has an error?  test this out...
+  sprintf (command, "jobstack", argv[2]);
+  InitIOBuffer (&buffer, 0x100);
+
+  SerialThreadLock ();
+  status = ControllerCommand (command, CONTROLLER_PROMPT, &buffer);
+  SerialThreadUnlock ();
+
+  if (status) {
+    gwrite (buffer.buffer, 1, buffer.Nbuffer, GP_LOG);
+  } else {
+    gprint (GP_LOG, "controller is not communicating\n");
+  }
+  FreeIOBuffer (&buffer);
+  return (TRUE);
+}
Index: /trunk/Ohana/src/opihi/pantasks/init.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/init.c	(revision 12466)
+++ /trunk/Ohana/src/opihi/pantasks/init.c	(revision 12467)
@@ -18,4 +18,5 @@
 int halt            PROTO((int, char **));
 int pulse           PROTO((int, char **));
+int showtask       PROTO((int, char **));
 int status_sys      PROTO((int, char **));
 int kill_job        PROTO((int, char **));
@@ -44,5 +45,6 @@
   {"halt",       halt,         	"halt the scheduler (no job harvesting)"},
   {"pulse",      pulse,        	"set the scheduler update period"},
-  {"status",     status_sys,   	"get system status"},
+  {"showtask",   showtask,   	"list a task"},
+  {"status",     status_sys,   	"get system or task status"},
   {"kill",       kill_job,     	"kill job"},
   {"delete",     delete_job,   	"delete job"},
