Index: /trunk/Ohana/src/opihi/pantasks/status.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/status.c	(revision 12468)
+++ /trunk/Ohana/src/opihi/pantasks/status.c	(revision 12469)
@@ -3,8 +3,33 @@
 int status_sys (int argc, char **argv) {
 
+  int N;
+
+  if (get_argument (argc, argv, "-h")) goto help;
+  if (get_argument (argc, argv, "-help")) goto help;
+  if (get_argument (argc, argv, "--help")) goto help;
+
+  if ((N = get_argument (argc, argv, "-tasks"))) {
+    remove_argument (N, &argc, argv);
+    ListTasks (FALSE);
+    return (TRUE);
+  }
+
+  if ((N = get_argument (argc, argv, "-taskinfo"))) {
+    remove_argument (N, &argc, argv);
+    ListTasks (TRUE);
+    return (TRUE);
+  }
+
+  if ((N = get_argument (argc, argv, "-taskstats"))) {
+    remove_argument (N, &argc, argv);
+    if (argc == 2) {
+      ListTaskStats (argv[N]);
+    } else {
+      ListTaskStats (NULL);
+    }      
+    return (TRUE);
+  }
+
   gprint (GP_LOG, "\n");
-
-  // if (rl_event_hook == NULL) {
-
   if (CheckTasksGetState()) {
     gprint (GP_LOG, " Scheduler is running\n");
@@ -24,3 +49,11 @@
   ListJobs ();
   return (TRUE);
+
+help:
+  gprint (GP_LOG, "USAGE: status [options]\n");
+  gprint (GP_LOG, "       (without options: over system status)\n");
+  gprint (GP_LOG, "       -tasks     : list defined tasks\n");
+  gprint (GP_LOG, "       -taskinfo  : details for tasks\n");
+  gprint (GP_LOG, "       -taskstats : processing statistics for tasks\n");
+  return (FALSE);
 }
Index: /trunk/Ohana/src/opihi/pantasks/status_server.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/status_server.c	(revision 12468)
+++ /trunk/Ohana/src/opihi/pantasks/status_server.c	(revision 12469)
@@ -2,4 +2,32 @@
 
 int status_server (int argc, char **argv) {
+
+  int N;
+
+  if (get_argument (argc, argv, "-h")) goto help;
+  if (get_argument (argc, argv, "-help")) goto help;
+  if (get_argument (argc, argv, "--help")) goto help;
+
+  if ((N = get_argument (argc, argv, "-tasks"))) {
+    remove_argument (N, &argc, argv);
+    ListTasks (FALSE);
+    return (TRUE);
+  }
+
+  if ((N = get_argument (argc, argv, "-taskinfo"))) {
+    remove_argument (N, &argc, argv);
+    ListTasks (TRUE);
+    return (TRUE);
+  }
+
+  if ((N = get_argument (argc, argv, "-taskstats"))) {
+    remove_argument (N, &argc, argv);
+    if (argc == 2) {
+      ListTaskStats (argv[N]);
+    } else {
+      ListTaskStats (NULL);
+    }      
+    return (TRUE);
+  }
 
   gprint (GP_LOG, "\n");
@@ -7,13 +35,25 @@
     gprint (GP_LOG, " Scheduler is running\n");
   } else {
-    gprint (GP_LOG, " Scheduler is stopped\n");
+    if (CheckJobsGetState()) {
+      gprint (GP_LOG, " Scheduler is stopped, harvesting jobs\n");
+    } else {
+      gprint (GP_LOG, " Scheduler is stopped\n");
+    }
   }
-  if (CheckControllerGetState()) {
-    gprint (GP_LOG, " Controller is active\n");
+  if (CheckControllerStatus()) {
+    gprint (GP_LOG, " Controller is running\n");
   } else {
-    gprint (GP_LOG, " Controller is not active\n");
+    gprint (GP_LOG, " Controller is stopped\n");
   }
   ListTasks (FALSE);
   ListJobs ();
   return (TRUE);
+
+help:
+  gprint (GP_LOG, "USAGE: status [options]\n");
+  gprint (GP_LOG, "       (without options: over system status)\n");
+  gprint (GP_LOG, "       -tasks     : list defined tasks\n");
+  gprint (GP_LOG, "       -taskinfo  : details for tasks\n");
+  gprint (GP_LOG, "       -taskstats : processing statistics for tasks\n");
+  return (FALSE);
 }
Index: /trunk/Ohana/src/opihi/pantasks/task.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/task.c	(revision 12468)
+++ /trunk/Ohana/src/opihi/pantasks/task.c	(revision 12469)
@@ -8,33 +8,4 @@
   char *input, *outline;
   Task *task;
-
-  if ((N = get_argument (argc, argv, "-list"))) {
-    remove_argument (N, &argc, argv);
-    ListTasks (FALSE);
-    return (TRUE);
-  }
-
-  if ((N = get_argument (argc, argv, "-longlist"))) {
-    remove_argument (N, &argc, argv);
-    ListTasks (TRUE);
-    return (TRUE);
-  }
-
-  if ((N = get_argument (argc, argv, "-stats"))) {
-    remove_argument (N, &argc, argv);
-    if (argc == 2) {
-      ListTaskStats (argv[N]);
-    } else {
-      ListTaskStats (NULL);
-    }      
-    return (TRUE);
-  }
-
-  if ((N = get_argument (argc, argv, "-show"))) {
-    remove_argument (N, &argc, argv);
-    if (argc != 2) goto usage;
-    ShowTask (argv[N]);
-    return (TRUE);
-  }
 
   if (argc != 2) goto usage;
