Index: /trunk/Ohana/src/opihi/pcontrol/CheckBusyJob.c
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/CheckBusyJob.c	(revision 4574)
+++ /trunk/Ohana/src/opihi/pcontrol/CheckBusyJob.c	(revision 4575)
@@ -34,9 +34,9 @@
 
     case PCLIENT_GOOD:
-      /* fprintf (stderr, "message received (CheckBusyJob)\n");   */
+      if (VerboseMode()) fprintf (stderr, "message received (CheckBusyJob)\n");
       break;
 
     default:
-      fprintf (stderr, "unknown status for pclient command: programming error\n");  
+      fprintf (stderr, "programming error: unknown status for pclient command\n");  
       exit (1);
   }
@@ -45,10 +45,10 @@
   p = memstr (buffer.buffer, "STATUS", buffer.Nbuffer);
   if (p == NULL) {
-    fprintf (stderr, "missing STATUS in pclient message : programming error\n");
+    fprintf (stderr, "programming error: missing STATUS in pclient message\n");
     exit (1);
   }
   sscanf (p, "%*s %s", string);
   if (!strcmp(string, "NONE")) {
-    fprintf (stderr, "no current job : programming error\n");
+    fprintf (stderr, "programming error: no current job\n");
     exit (1);
   }
Index: /trunk/Ohana/src/opihi/pcontrol/CheckDoneHost.c
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/CheckDoneHost.c	(revision 4574)
+++ /trunk/Ohana/src/opihi/pcontrol/CheckDoneHost.c	(revision 4575)
@@ -16,5 +16,5 @@
       /** do we need to close the connection? **/
       PutHost (host, PCONTROL_HOST_DOWN, STACK_BOTTOM);
-      fprintf (stderr, "host %s is down\n", host[0].hostname);
+      if (VerboseMode()) fprintf (stderr, "host %s is down\n", host[0].hostname);
       FreeIOBuffer (&buffer);
       return (FALSE);
@@ -22,14 +22,14 @@
     case PCLIENT_HUNG:
       PutHost (host, PCONTROL_HOST_DONE, STACK_BOTTOM);
-      fprintf (stderr, "host %s is not responding\n", host[0].hostname);
+      if (VerboseMode()) fprintf (stderr, "host %s is not responding\n", host[0].hostname);
       FreeIOBuffer (&buffer);
       return (FALSE);
 
     case PCLIENT_GOOD:
-      fprintf (stderr, "message received (CheckDoneHost)\n");  
+      if (VerboseMode()) fprintf (stderr, "message received (CheckDoneHost)\n");  
       break;
 
     default:
-      fprintf (stderr, "unknown status for pclient command: programming error\n");  
+      if (VerboseMode()) fprintf (stderr, "unknown status for pclient command: programming error\n");  
       exit (1);
   }
@@ -38,5 +38,5 @@
   p = memstr (buffer.buffer, "STATUS", buffer.Nbuffer);
   if (p == NULL) {
-    fprintf (stderr, "missing STATUS in pclient message : programming error in CheckDoneHost\n");
+    fprintf (stderr, "programming error: missing STATUS in pclient message (CheckDoneHost)\n");
     exit (1);
   }
@@ -44,9 +44,9 @@
   switch (status) {
     case -1:
-      fprintf (stderr, "reset syntax error : programming error\n");
+      fprintf (stderr, "programming error: reset syntax error\n");
       exit (1);
       
     case 0:
-      fprintf (stderr, "reset failed\n");
+      if (VerboseMode()) fprintf (stderr, "reset failed\n");
       PutHost (host, PCONTROL_HOST_DONE, STACK_BOTTOM);
       FreeIOBuffer (&buffer);
@@ -55,5 +55,5 @@
     case 1:
     case 2:
-      fprintf (stderr, "successful reset\n");
+      if (VerboseMode()) fprintf (stderr, "successful reset\n");
       PutHost (host, PCONTROL_HOST_IDLE, STACK_BOTTOM);
       FreeIOBuffer (&buffer);
@@ -61,8 +61,8 @@
 
     default:
-      fprintf (stderr, "programming error in CheckDoneHost (should not reach here)\n");
+      fprintf (stderr, "programming error: should not reach here (CheckDoneHost)\n");
       exit (1);
   }
-  fprintf (stderr, "programming error in CheckDoneHost (should not reach here either)\n");
+  fprintf (stderr, "programming error: should not reach here either (CheckDoneHost)\n");
   exit (1);
 }
Index: /trunk/Ohana/src/opihi/pcontrol/CheckHost.c
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/CheckHost.c	(revision 4574)
+++ /trunk/Ohana/src/opihi/pcontrol/CheckHost.c	(revision 4575)
@@ -12,5 +12,5 @@
   switch (status) {
     case 0:
-      fprintf (stderr, "host %s is down\n", host[0].hostname);
+      if (VerboseMode()) fprintf (stderr, "host %s is down\n", host[0].hostname);
 
       /* if host has a job, job is dead, push to Pending */
@@ -33,5 +33,5 @@
       
     case -1:
-      fprintf (stderr, "host %s is not responding\n", host[0].hostname);
+      if (VerboseMode()) fprintf (stderr, "host %s is not responding\n", host[0].hostname);
       /*** do we mark this in some way (HUNG) ? ***/
       PutHost (host, host[0].stack, STACK_BOTTOM);
@@ -40,10 +40,10 @@
 
     default:
-      /* fprintf (stderr, "host %s is alive\n", host[0].hostname); */
+      if (VerboseMode()) fprintf (stderr, "host %s is alive\n", host[0].hostname);
       PutHost (host, host[0].stack, STACK_BOTTOM);
       FreeIOBuffer (&buffer);
       return (TRUE);
   }
-  fprintf (stderr, "programming error (Check Host)\n"); 
+  fprintf (stderr, "programming error: should not reach here (Check Host)\n"); 
   return (FALSE);
 }
Index: /trunk/Ohana/src/opihi/pcontrol/GetJobOutput.c
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/GetJobOutput.c	(revision 4574)
+++ /trunk/Ohana/src/opihi/pcontrol/GetJobOutput.c	(revision 4575)
@@ -38,13 +38,13 @@
   switch (status) {
     case -1:
-      fprintf (stderr, "host %s is not responding\n", host[0].hostname);
+      if (VerboseMode()) fprintf (stderr, "host %s is not responding\n", host[0].hostname);
       return (FALSE);
 
     case 0:
-      fprintf (stderr, "host %s is down\n", host[0].hostname);
+      if (VerboseMode()) fprintf (stderr, "host %s is down\n", host[0].hostname);
       return (FALSE);
 
     default:
-      fprintf (stderr, "message received (GetJobOutput : %s)\n", cmd);  
+      if (VerboseMode()) fprintf (stderr, "message received (GetJobOutput : %s)\n", cmd);  
       /* drop extra bytes from pclient (not pclient:job) */
       buffer[0].Nbuffer = Nstart + Nbytes;
@@ -55,5 +55,5 @@
   }
 
-  fprintf (stderr, "programming error in GetJobOutput (should not reach here)\n");
+  fprintf (stderr, "programming error: should not reach here (GetJobOutput)\n");
   exit (1);
 }
Index: /trunk/Ohana/src/opihi/pcontrol/Makefile
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/Makefile	(revision 4574)
+++ /trunk/Ohana/src/opihi/pcontrol/Makefile	(revision 4575)
@@ -50,11 +50,12 @@
 
 cmds = \
+$(SDIR)/job.$(ARCH).o \
+$(SDIR)/host.$(ARCH).o \
 $(SDIR)/kill.$(ARCH).o \
 $(SDIR)/delete.$(ARCH).o \
 $(SDIR)/check.$(ARCH).o \
-$(SDIR)/job.$(ARCH).o \
 $(SDIR)/status.$(ARCH).o \
 $(SDIR)/stdout.$(ARCH).o \
-$(SDIR)/host.$(ARCH).o 
+$(SDIR)/verbose.$(ARCH).o
 
 pcontrol = $(cmds) $(funcs)
Index: /trunk/Ohana/src/opihi/pcontrol/StartHost.c
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/StartHost.c	(revision 4574)
+++ /trunk/Ohana/src/opihi/pcontrol/StartHost.c	(revision 4575)
@@ -14,5 +14,5 @@
   pid = rconnect (command, host[0].hostname, shell, stdio);
   if (!pid) {     /** failure to start **/
-    fprintf (stderr, "failure to start %s\n", host[0].hostname);
+    if (VerboseMode()) fprintf (stderr, "failure to start %s\n", host[0].hostname);
     PutHost (host, PCONTROL_HOST_DOWN, STACK_BOTTOM);
     return (FALSE);
Index: /trunk/Ohana/src/opihi/pcontrol/StartJob.c
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/StartJob.c	(revision 4574)
+++ /trunk/Ohana/src/opihi/pcontrol/StartJob.c	(revision 4575)
@@ -13,5 +13,5 @@
   host = (Host *) job[0].host;
   if (host == NULL) {
-    fprintf (stderr, "no assigned host : programming error\n");
+    fprintf (stderr, "programming error: no assigned host\n");
     exit (1);
   }
@@ -36,17 +36,17 @@
   switch (status) {
     case PCLIENT_DOWN:
-      fprintf (stderr, "host %s is down\n", host[0].hostname);
+      if (VerboseMode()) fprintf (stderr, "host %s is down\n", host[0].hostname);
       goto failure;
 
     case PCLIENT_HUNG:
-      fprintf (stderr, "host %s is not responding\n", host[0].hostname);
+      if (VerboseMode()) fprintf (stderr, "host %s is not responding\n", host[0].hostname);
       goto failure;
 
     case PCLIENT_GOOD:
-      fprintf (stderr, "message received (StartJob)\n");  
+      if (VerboseMode()) fprintf (stderr, "message received (StartJob)\n");  
       break;
 
     default:
-      fprintf (stderr, "unknown status for pclient command: programming error\n");  
+      if (VerboseMode()) fprintf (stderr, "unknown status for pclient command: programming error\n");  
       exit (1);
   }
@@ -55,5 +55,5 @@
   p = memstr (buffer.buffer, "STATUS", buffer.Nbuffer);
   if (p == NULL) {
-    fprintf (stderr, "missing STATUS in pclient message : programming error\n");
+    fprintf (stderr, "programming error: missing STATUS in pclient message\n");
     exit (1);
   }
@@ -61,13 +61,13 @@
   switch (status) {
     case -1:
-      fprintf (stderr, "error in pclient child\n");
+      if (VerboseMode()) fprintf (stderr, "error in pclient child\n");
       goto failure;
 
     case -2:
-      fprintf (stderr, "syntax error in pclient command : programming error\n");
+      fprintf (stderr, "programming error: syntax error in pclient command\n");
       exit (1);
 
     case -3:
-      fprintf (stderr, "existing child on pclient : programming error\n");
+      fprintf (stderr, "programming error: existing child on pclient\n");
       exit (1);
 
@@ -81,5 +81,5 @@
   }
   /* we should never reach here */
-  fprintf (stderr, "pcontrol programming error\n");
+  fprintf (stderr, "programming error: should not reach here (StartJob)\n");
   exit (1);
 
Index: /trunk/Ohana/src/opihi/pcontrol/init.c
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/init.c	(revision 4574)
+++ /trunk/Ohana/src/opihi/pcontrol/init.c	(revision 4575)
@@ -7,4 +7,5 @@
 int check       PROTO((int, char **));
 int status      PROTO((int, char **));
+int verbose     PROTO((int, char **));
 int stdout_pc   PROTO((int, char **));
 int stderr_pc   PROTO((int, char **));
@@ -19,4 +20,5 @@
   {"stdout",    stdout_pc, "get stdout buffer for job"},
   {"stderr",    stderr_pc, "get stderr buffer for job"},
+  {"verbose",   verbose,   "set the verbose mode for job"},
 }; 
 
Index: /trunk/Ohana/src/opihi/pcontrol/rconnect.c
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/rconnect.c	(revision 4574)
+++ /trunk/Ohana/src/opihi/pcontrol/rconnect.c	(revision 4575)
@@ -27,9 +27,8 @@
   argv[2] = shell;
   argv[3] = 0;
-  fprintf (stderr, "%s %s %s\n", argv[0], argv[1], argv[2]);
 
   pid = fork ();
   if (!pid) { /* must be child process */
-    fprintf (stderr, "starting remote connection to %s...", hostname);
+    if (VerboseMode()) fprintf (stderr, "starting remote connection to %s...", hostname);
 
     /* close the other ends of the pipes */
@@ -79,13 +78,12 @@
     status = ReadtoIOBuffer (&buffer, stdout_fd[0]);
     p = memstr (buffer.buffer, "CONNECTED", buffer.Nbuffer);
-    /* fprintf (stderr, "%d  %d  %s\n", i, buffer.Nbuffer, buffer.buffer); */
     usleep (20000);
   }
-  fprintf (stderr, "%d cycles to connect\n", i);
+  if (VerboseMode()) fprintf (stderr, "%d cycles to connect\n", i);
   if (status == 0) goto pipe_error;
   if (status == -1) goto io_error;
   FreeIOBuffer (&buffer);
 
-  fprintf (stderr, "Connected\n");
+  if (VerboseMode()) fprintf (stderr, "Connected\n");
 
   stdio[0] = stdin_fd[1];
@@ -100,5 +98,5 @@
 
 io_error:
-  fprintf (stderr, "timeout while connecting\n");
+  if (VerboseMode()) fprintf (stderr, "timeout while connecting\n");
   goto close_pipes;
 
Index: /trunk/Ohana/src/opihi/pcontrol/verbose.c
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/verbose.c	(revision 4575)
+++ /trunk/Ohana/src/opihi/pcontrol/verbose.c	(revision 4575)
@@ -0,0 +1,37 @@
+# include "pcontrol.h"
+
+static int VERBOSE = FALSE;
+
+int verbose (int argc, char **argv) {
+
+  if (argc == 1) {
+    if (VERBOSE) {
+      fprintf (stderr, "verbose mode ON\n");
+    } else {
+      fprintf (stderr, "verbose mode OFF\n");
+    }
+    return (TRUE);
+  }
+
+  if (argc == 2) {
+    if (!strcasecmp (argv[1], "ON")) {
+      VERBOSE = TRUE;
+      return (TRUE);
+    }
+    if (!strcasecmp (argv[1], "OFF")) {
+      VERBOSE = FALSE;
+      return (TRUE);
+    }
+    if (!strcasecmp (argv[1], "TOGGLE")) {
+      VERBOSE = ~VERBOSE;
+      return (TRUE);
+    }
+  }
+
+  fprintf (stderr, "USAGE: verbose (on/off/toggle)\n");
+  return (FALSE);
+}
+
+int VerboseMode () {
+  return (VERBOSE);
+}
