diff --git a/doc/repmgr-daemon-status.sgml b/doc/repmgr-daemon-status.sgml index febd8c47..1d91a374 100644 --- a/doc/repmgr-daemon-status.sgml +++ b/doc/repmgr-daemon-status.sgml @@ -33,7 +33,10 @@ repmgr daemon status can be executed on any active node in the replication cluster. A valid repmgr.conf file is required. - + + If PostgreSQL is not running on a node, &repmgr; will not be able to determine the + status of that node's repmgrd instance. + After restarting PostgreSQL on any node, the repmgrd instance @@ -87,60 +90,60 @@ - - repmgr daemon status accepts an optional parameter --csv, which - outputs the replication cluster's status in a simple CSV format, suitable for - parsing by scripts, e.g.: - + + repmgr daemon status accepts an optional parameter --csv, which + outputs the replication cluster's status in a simple CSV format, suitable for + parsing by scripts, e.g.: + $ repmgr -f /etc/repmgr.conf daemon status --csv 1,node1,primary,1,1,5722,1,100,-1 2,node2,standby,1,0,-1,1,100,1 3,node3,standby,1,1,5779,1,100,1 - - - The columns have following meanings: - - - - node ID - - + + + The columns have following meanings: + + + + node ID + + - - + + node name - - + + - - + + node type (primary or standby) - - + + - - + + PostgreSQL server running (1 = running, 0 = not running) - - + + - - - repmgrd running (1 = running, 0 = not running) - - + + + repmgrd running (1 = running, 0 = not running, -1 = unknown) + + - - - repmgrd PID (-1 if not running) - - + + + repmgrd PID (-1 if not running or status unknown) + + - - - repmgrd paused (1 = paused, 0 = not paused) - - + + + repmgrd paused (1 = paused, 0 = not paused, -1 = unknown) + + @@ -150,25 +153,25 @@ - interval in seconds since the node's upstream was last seen + interval in seconds since the node's upstream was last seen (this will be -1 if the value could not be retrieved, or the node is primary) - - - - + + + + - Display the full text of any database connection error messages + Display the full text of any database connection error messages - + diff --git a/repmgr-action-daemon.c b/repmgr-action-daemon.c index fddfa59c..2562315f 100644 --- a/repmgr-action-daemon.c +++ b/repmgr-action-daemon.c @@ -260,14 +260,24 @@ do_daemon_status(void) { if (runtime_options.output_mode == OM_CSV) { + int running = repmgrd_info[i]->running ? 1 : 0; + int paused = repmgrd_info[i]->paused ? 1 : 0; + + /* If PostgreSQL is not running, repmgrd status is unknown */ + if (repmgrd_info[i]->pg_running == false) + { + running = -1; + paused = -1; + } + printf("%i,%s,%s,%i,%i,%i,%i,%i,%i\n", cell->node_info->node_id, cell->node_info->node_name, get_node_type_string(cell->node_info->type), repmgrd_info[i]->pg_running ? 1 : 0, - repmgrd_info[i]->running ? 1 : 0, + running, repmgrd_info[i]->pid, - repmgrd_info[i]->paused ? 1 : 0, + paused, cell->node_info->priority, repmgrd_info[i]->pid == UNKNOWN_PID ? -1