mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-22 22:56:29 +00:00
Remove mistakenly added file
This commit is contained in:
@@ -1,768 +0,0 @@
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 2700a78..108bfe8 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -53,7 +53,7 @@ $(info Building against PostgreSQL $(MAJORVERSION))
|
||||
|
||||
REPMGR_CLIENT_OBJS = repmgr-client.o \
|
||||
repmgr-action-primary.o repmgr-action-standby.o repmgr-action-witness.o \
|
||||
- repmgr-action-bdr.o repmgr-action-cluster.o repmgr-action-node.o repmgr-action-service.o \
|
||||
+ repmgr-action-bdr.o repmgr-action-cluster.o repmgr-action-node.o repmgr-action-service.o repmgr-action-daemon.o \
|
||||
configfile.o configfile-scan.o log.o strutil.o controldata.o dirutil.o compat.o dbutils.o sysutils.o
|
||||
REPMGRD_OBJS = repmgrd.o repmgrd-physical.o repmgrd-bdr.o configfile.o configfile-scan.o log.o dbutils.o strutil.o controldata.o compat.o sysutils.o
|
||||
DATE=$(shell date "+%Y-%m-%d")
|
||||
diff --git a/doc/appendix-release-notes.xml b/doc/appendix-release-notes.xml
|
||||
index 93e5a8c..e5fe4e0 100644
|
||||
--- a/doc/appendix-release-notes.xml
|
||||
+++ b/doc/appendix-release-notes.xml
|
||||
@@ -24,12 +24,9 @@
|
||||
<sect2>
|
||||
<title>Compatibility changes</title>
|
||||
<para>
|
||||
- The <command>repmgr daemon ...</command> commands have been renamed to
|
||||
- <command>repmgr service ...</command>.
|
||||
- </para>
|
||||
- <para>
|
||||
- The <command>repmgr daemon ...</command> form will still be accepted
|
||||
- for backwards compatibility.
|
||||
+ Some <command>repmgr daemon ...</command> commands have been renamed to
|
||||
+ <command>repmgr service ...</command> as they have a cluster-wide effect
|
||||
+ and to avoid giving the impression they affect only the local &repmgr; daemon.
|
||||
</para>
|
||||
<para>
|
||||
Following commands are affected:
|
||||
@@ -57,22 +54,13 @@
|
||||
</simpara>
|
||||
</listitem>
|
||||
|
||||
- <listitem>
|
||||
- <simpara>
|
||||
- <command>repmgr daemon start</command>
|
||||
- (now <link linkend="repmgr-service-start"><command>repmgr service start</command></link>)
|
||||
- </simpara>
|
||||
- </listitem>
|
||||
-
|
||||
- <listitem>
|
||||
- <simpara>
|
||||
- <command>repmgr daemon stop</command>
|
||||
- (now <link linkend="repmgr-service-stop"><command>repmgr service stop</command></link>)
|
||||
- </simpara>
|
||||
- </listitem>
|
||||
-
|
||||
</itemizedlist>
|
||||
</para>
|
||||
+ <para>
|
||||
+ The <command>repmgr daemon ...</command> form will still be accepted
|
||||
+ for backwards compatibility.
|
||||
+ </para>
|
||||
+
|
||||
|
||||
<para>
|
||||
The following command line options, which have been deprecated since &repmgr; 3.3
|
||||
@@ -497,8 +485,8 @@ REPMGRD_OPTS="--daemonize=false"</programlisting>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
- New commands <link linkend="repmgr-service-start"><command>repmgr daemon start</command></link> and
|
||||
- <link linkend="repmgr-service-stop"><command>repmgr daemon stop</command></link>:
|
||||
+ New commands <link linkend="repmgr-daemon-start"><command>repmgr daemon start</command></link> and
|
||||
+ <link linkend="repmgr-daemon-stop"><command>repmgr daemon stop</command></link>:
|
||||
these provide a standardized way of starting and stopping &repmgrd;.
|
||||
GitHub #528.
|
||||
</para>
|
||||
diff --git a/doc/filelist.xml b/doc/filelist.xml
|
||||
index e59e35d..b2bb157 100644
|
||||
--- a/doc/filelist.xml
|
||||
+++ b/doc/filelist.xml
|
||||
@@ -55,10 +55,10 @@
|
||||
<!ENTITY repmgr-cluster-event SYSTEM "repmgr-cluster-event.xml">
|
||||
<!ENTITY repmgr-cluster-cleanup SYSTEM "repmgr-cluster-cleanup.xml">
|
||||
<!ENTITY repmgr-service-status SYSTEM "repmgr-service-status.xml">
|
||||
-<!ENTITY repmgr-service-start SYSTEM "repmgr-service-start.xml">
|
||||
-<!ENTITY repmgr-service-stop SYSTEM "repmgr-service-stop.xml">
|
||||
<!ENTITY repmgr-service-pause SYSTEM "repmgr-service-pause.xml">
|
||||
<!ENTITY repmgr-service-unpause SYSTEM "repmgr-service-unpause.xml">
|
||||
+<!ENTITY repmgr-daemon-start SYSTEM "repmgr-daemon-start.xml">
|
||||
+<!ENTITY repmgr-daemon-stop SYSTEM "repmgr-daemon-stop.xml">
|
||||
|
||||
<!ENTITY appendix-release-notes SYSTEM "appendix-release-notes.xml">
|
||||
<!ENTITY appendix-faq SYSTEM "appendix-faq.xml">
|
||||
diff --git a/doc/repmgr-daemon-start.xml b/doc/repmgr-daemon-start.xml
|
||||
index ae5e21f..fb0eb6d 100644
|
||||
--- a/doc/repmgr-daemon-start.xml
|
||||
+++ b/doc/repmgr-daemon-start.xml
|
||||
@@ -1,6 +1,6 @@
|
||||
-<refentry id="repmgr-service-start">
|
||||
+<refentry id="repmgr-daemon-start">
|
||||
<indexterm>
|
||||
- <primary>repmgr service start</primary>
|
||||
+ <primary>repmgr daemon start</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
@@ -9,11 +9,11 @@
|
||||
</indexterm>
|
||||
|
||||
<refmeta>
|
||||
- <refentrytitle>repmgr service start</refentrytitle>
|
||||
+ <refentrytitle>repmgr daemon start</refentrytitle>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
- <refname>repmgr service start</refname>
|
||||
+ <refname>repmgr daemon start</refname>
|
||||
<refpurpose>Start the &repmgrd; service</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
<important>
|
||||
<para>
|
||||
The <filename>repmgr.conf</filename> parameter <varname>repmgrd_service_start_command</varname>
|
||||
- must be set for <command>repmgr service start</command> to work; see section
|
||||
- <xref linkend="repmgr-service-start-configuration"/> for details.
|
||||
+ must be set for <command>repmgr daemon start</command> to work; see section
|
||||
+ <xref linkend="repmgr-daemon-start-configuration"/> for details.
|
||||
</para>
|
||||
</important>
|
||||
</refsect1>
|
||||
@@ -89,11 +89,11 @@
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
- <refsect1 id="repmgr-service-start-configuration" xreflabel="repmgr service start configuration">
|
||||
+ <refsect1 id="repmgr-daemon-start-configuration" xreflabel="repmgr daemon start configuration">
|
||||
<title>Configuration file settings</title>
|
||||
<para>
|
||||
The following parameter in <filename>repmgr.conf</filename> is relevant
|
||||
- to <command>repmgr service start</command>:
|
||||
+ to <command>repmgr daemon start</command>:
|
||||
</para>
|
||||
|
||||
<variablelist>
|
||||
@@ -104,11 +104,11 @@
|
||||
<listitem>
|
||||
<indexterm>
|
||||
<primary>repmgrd_service_start_command</primary>
|
||||
- <secondary>with "repmgr service start"</secondary>
|
||||
+ <secondary>with "repmgr daemon start"</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
- <command>repmgr service start</command> will execute the command defined by the
|
||||
+ <command>repmgr daemon start</command> will execute the command defined by the
|
||||
<varname>repmgrd_service_start_command</varname> parameter in <filename>repmgr.conf</filename>.
|
||||
This must be set to a shell command which will start &repmgrd;;
|
||||
if &repmgr; was installed from a package, this will be the service command defined by the
|
||||
@@ -132,7 +132,7 @@
|
||||
<refsect1>
|
||||
<title>Exit codes</title>
|
||||
<para>
|
||||
- One of the following exit codes will be emitted by <command>repmgr service start</command>:
|
||||
+ One of the following exit codes will be emitted by <command>repmgr daemon start</command>:
|
||||
</para>
|
||||
<variablelist>
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
<refsect1>
|
||||
<title>See also</title>
|
||||
<para>
|
||||
- <xref linkend="repmgr-service-stop"/>, <xref linkend="repmgr-service-status"/>, <xref linkend="repmgrd-daemon"/>
|
||||
+ <xref linkend="repmgr-daemon-stop"/>, <xref linkend="repmgrd-daemon"/>, <xref linkend="repmgr-service-status"/>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/doc/repmgr-daemon-stop.xml b/doc/repmgr-daemon-stop.xml
|
||||
index dc93856..2304201 100644
|
||||
--- a/doc/repmgr-daemon-stop.xml
|
||||
+++ b/doc/repmgr-daemon-stop.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
-<refentry id="repmgr-service-stop">
|
||||
+<refentry id="repmgr-daemon-stop">
|
||||
<indexterm>
|
||||
<primary>repmgr daemon stop</primary>
|
||||
</indexterm>
|
||||
@@ -40,7 +40,7 @@
|
||||
<para>
|
||||
The <filename>repmgr.conf</filename> parameter <varname>repmgrd_service_stop_command</varname>
|
||||
must be set for <command>repmgr daemon stop</command> to work; see section
|
||||
- <xref linkend="repmgr-service-stop-configuration"/> for details.
|
||||
+ <xref linkend="repmgr-daemon-stop-configuration"/> for details.
|
||||
</para>
|
||||
</important>
|
||||
</refsect1>
|
||||
@@ -114,7 +114,7 @@
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
- <refsect1 id="repmgr-service-stop-configuration" xreflabel="repmgr daemon stop configuration">
|
||||
+ <refsect1 id="repmgr-daemon-stop-configuration" xreflabel="repmgr daemon stop configuration">
|
||||
<title>Configuration file settings</title>
|
||||
<para>
|
||||
The following parameter in <filename>repmgr.conf</filename> is relevant
|
||||
@@ -194,7 +194,7 @@
|
||||
<refsect1>
|
||||
<title>See also</title>
|
||||
<para>
|
||||
- <xref linkend="repmgr-service-start"/>, <xref linkend="repmgr-service-status"/>, <xref linkend="repmgrd-daemon"/>
|
||||
+ <xref linkend="repmgr-daemon-start"/>, <xref linkend="repmgrd-daemon"/>, <xref linkend="repmgr-service-status"/>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/doc/repmgr.xml b/doc/repmgr.xml
|
||||
index d3dc3b7..5de1178 100644
|
||||
--- a/doc/repmgr.xml
|
||||
+++ b/doc/repmgr.xml
|
||||
@@ -117,10 +117,10 @@
|
||||
&repmgr-cluster-event;
|
||||
&repmgr-cluster-cleanup;
|
||||
&repmgr-service-status;
|
||||
- &repmgr-service-start;
|
||||
- &repmgr-service-stop;
|
||||
&repmgr-service-pause;
|
||||
&repmgr-service-unpause;
|
||||
+ &repmgr-daemon-start;
|
||||
+ &repmgr-daemon-stop;
|
||||
</part>
|
||||
|
||||
&appendix-release-notes;
|
||||
diff --git a/doc/repmgrd-configuration.xml b/doc/repmgrd-configuration.xml
|
||||
index d674e4e..dd28650 100644
|
||||
--- a/doc/repmgrd-configuration.xml
|
||||
+++ b/doc/repmgrd-configuration.xml
|
||||
@@ -518,10 +518,8 @@
|
||||
<secondary>repmgrd service configuration</secondary>
|
||||
</indexterm>
|
||||
<para>
|
||||
- If you are intending to use the <link linkend="repmgr-service-start"><command>repmgr service start</command></link>
|
||||
- and <link linkend="repmgr-service-stop"><command>repmgr service stop</command></link>
|
||||
- (&repmgr; 4.2 - 4.4: <link linkend="repmgr-service-start"><command>repmgr daemon start</command></link>
|
||||
- and <link linkend="repmgr-service-stop"><command>repmgr daemon stop</command></link>)
|
||||
+ If you are intending to use the <link linkend="repmgr-daemon-start"><command>repmgr daemon start</command></link>
|
||||
+ and <link linkend="repmgr-daemon-stop"><command>repmgr daemon stop</command></link>
|
||||
commands, the following
|
||||
parameters <emphasis>must</emphasis> be set in <filename>repmgr.conf</filename>:
|
||||
<itemizedlist spacing="compact" mark="bullet">
|
||||
@@ -861,14 +859,14 @@ repmgrd_service_stop_command='sudo systemctl repmgr11 stop'
|
||||
for different distributions.
|
||||
</para>
|
||||
<para>
|
||||
- The commands <link linkend="repmgr-service-start"><command>repmgr service start</command></link> and
|
||||
- <link linkend="repmgr-service-stop"><command>repmgr service stop</command></link> can be used
|
||||
+ The commands <link linkend="repmgr-daemon-start"><command>repmgr daemon start</command></link> and
|
||||
+ <link linkend="repmgr-daemon-stop"><command>repmgr daemon stop</command></link> can be used
|
||||
as convenience wrappers to start and stop &repmgrd; on the local node.
|
||||
</para>
|
||||
<important>
|
||||
<para>
|
||||
- <link linkend="repmgr-service-start"><command>repmgr daemon start</command></link> and
|
||||
- <link linkend="repmgr-service-stop"><command>repmgr daemon stop</command></link> require
|
||||
+ <link linkend="repmgr-daemon-start"><command>repmgr daemon start</command></link> and
|
||||
+ <link linkend="repmgr-daemon-stop"><command>repmgr daemon stop</command></link> require
|
||||
that the appropriate start/stop commands are configured as
|
||||
<varname>repmgrd_service_start_command</varname> and <varname>repmgrd_service_stop_command</varname>
|
||||
in <filename>repmgr.conf</filename>.
|
||||
diff --git a/repmgr-action-service.c b/repmgr-action-service.c
|
||||
index 74941be..2e29e30 100644
|
||||
--- a/repmgr-action-service.c
|
||||
+++ b/repmgr-action-service.c
|
||||
@@ -26,9 +26,6 @@
|
||||
#include "repmgr-client-global.h"
|
||||
#include "repmgr-action-service.h"
|
||||
|
||||
-#define REPMGR_SERVICE_STOP_START_WAIT 15
|
||||
-#define REPMGR_SERVICE_STATUS_START_HINT _("use \"repmgr service status\" to confirm that repmgrd was successfully started")
|
||||
-#define REPMGR_SERVICE_STATUS_STOP_HINT _("use \"repmgr service status\" to confirm that repmgrd was successfully stopped")
|
||||
|
||||
/*
|
||||
* Possibly also show:
|
||||
@@ -499,284 +496,6 @@ fetch_node_records(PGconn *conn, NodeInfoList *node_list)
|
||||
}
|
||||
|
||||
|
||||
-void
|
||||
-do_service_start(void)
|
||||
-{
|
||||
- PGconn *conn = NULL;
|
||||
- PQExpBufferData repmgrd_command;
|
||||
- PQExpBufferData output_buf;
|
||||
- bool success;
|
||||
-
|
||||
- if (config_file_options.repmgrd_service_start_command[0] == '\0')
|
||||
- {
|
||||
- log_error(_("\"repmgrd_service_start_command\" is not set"));
|
||||
- log_hint(_("set \"repmgrd_service_start_command\" in \"repmgr.conf\""));
|
||||
- exit(ERR_BAD_CONFIG);
|
||||
- }
|
||||
-
|
||||
- log_verbose(LOG_INFO, _("connecting to local node"));
|
||||
-
|
||||
- conn = establish_db_connection(config_file_options.conninfo, false);
|
||||
-
|
||||
- if (PQstatus(conn) != CONNECTION_OK)
|
||||
- {
|
||||
- /* TODO: if PostgreSQL is not available, have repmgrd loop and retry connection */
|
||||
- log_error(_("unable to connect to local node"));
|
||||
- log_detail(_("PostgreSQL must be running before \"repmgrd\" can be started"));
|
||||
- exit(ERR_DB_CONN);
|
||||
- }
|
||||
-
|
||||
- /*
|
||||
- * if local connection available, check if repmgr.so is installed, and
|
||||
- * whether repmgrd is running
|
||||
- */
|
||||
- check_shared_library(conn);
|
||||
-
|
||||
- if (is_repmgrd_running(conn) == true)
|
||||
- {
|
||||
- pid_t pid = UNKNOWN_PID;
|
||||
-
|
||||
- log_error(_("repmgrd appears to be running already"));
|
||||
-
|
||||
- pid = repmgrd_get_pid(conn);
|
||||
-
|
||||
- if (pid != UNKNOWN_PID)
|
||||
- log_detail(_("repmgrd PID is %i"), pid);
|
||||
- else
|
||||
- log_warning(_("unable to determine repmgrd PID"));
|
||||
-
|
||||
- PQfinish(conn);
|
||||
- exit(ERR_REPMGRD_SERVICE);
|
||||
- }
|
||||
-
|
||||
- PQfinish(conn);
|
||||
-
|
||||
-
|
||||
- initPQExpBuffer(&repmgrd_command);
|
||||
- appendPQExpBufferStr(&repmgrd_command,
|
||||
- config_file_options.repmgrd_service_start_command);
|
||||
-
|
||||
- if (runtime_options.dry_run == true)
|
||||
- {
|
||||
- log_info(_("prerequisites for starting repmgrd met"));
|
||||
- log_detail("following command would be executed:\n %s", repmgrd_command.data);
|
||||
- exit(SUCCESS);
|
||||
- }
|
||||
-
|
||||
- log_notice(_("executing: \"%s\""), repmgrd_command.data);
|
||||
-
|
||||
- initPQExpBuffer(&output_buf);
|
||||
-
|
||||
- success = local_command(repmgrd_command.data, &output_buf);
|
||||
- termPQExpBuffer(&repmgrd_command);
|
||||
-
|
||||
- if (success == false)
|
||||
- {
|
||||
- log_error(_("unable to start repmgrd"));
|
||||
- if (output_buf.data[0] != '\0')
|
||||
- log_detail("%s", output_buf.data);
|
||||
- termPQExpBuffer(&output_buf);
|
||||
- exit(ERR_REPMGRD_SERVICE);
|
||||
- }
|
||||
-
|
||||
- termPQExpBuffer(&output_buf);
|
||||
-
|
||||
- if (runtime_options.no_wait == true || runtime_options.wait == 0)
|
||||
- {
|
||||
- log_hint(REPMGR_SERVICE_STATUS_START_HINT);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- int i = 0;
|
||||
- int timeout = REPMGR_SERVICE_STOP_START_WAIT;
|
||||
-
|
||||
- if (runtime_options.wait_provided)
|
||||
- timeout = runtime_options.wait;
|
||||
-
|
||||
- conn = establish_db_connection(config_file_options.conninfo, false);
|
||||
-
|
||||
- if (PQstatus(conn) != CONNECTION_OK)
|
||||
- {
|
||||
- log_notice(_("unable to connect to local node"));
|
||||
- log_hint(REPMGR_SERVICE_STATUS_START_HINT);
|
||||
- exit(ERR_DB_CONN);
|
||||
- }
|
||||
-
|
||||
- for (;;)
|
||||
- {
|
||||
- if (is_repmgrd_running(conn) == true)
|
||||
- {
|
||||
- log_notice(_("repmgrd was successfully started"));
|
||||
- PQfinish(conn);
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- if (i == timeout)
|
||||
- {
|
||||
- PQfinish(conn);
|
||||
- log_error(_("repmgrd does not appear to have started after %i seconds"),
|
||||
- timeout);
|
||||
- log_hint(REPMGR_SERVICE_STATUS_START_HINT);
|
||||
- exit(ERR_REPMGRD_SERVICE);
|
||||
- }
|
||||
-
|
||||
- log_debug("sleeping 1 second; %i of %i attempts to determine if repmgrd is running",
|
||||
- i, runtime_options.wait);
|
||||
- sleep(1);
|
||||
- i++;
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-
|
||||
-void do_service_stop(void)
|
||||
-{
|
||||
- PGconn *conn = NULL;
|
||||
- PQExpBufferData repmgrd_command;
|
||||
- PQExpBufferData output_buf;
|
||||
- bool success;
|
||||
- bool have_db_connection = true;
|
||||
- pid_t pid = UNKNOWN_PID;
|
||||
-
|
||||
- if (config_file_options.repmgrd_service_stop_command[0] == '\0')
|
||||
- {
|
||||
- log_error(_("\"repmgrd_service_stop_command\" is not set"));
|
||||
- log_hint(_("set \"repmgrd_service_stop_command\" in \"repmgr.conf\""));
|
||||
- exit(ERR_BAD_CONFIG);
|
||||
- }
|
||||
-
|
||||
- /*
|
||||
- * if local connection available, check if repmgr.so is installed, and
|
||||
- * whether repmgrd is running
|
||||
- */
|
||||
- log_verbose(LOG_INFO, _("connecting to local node"));
|
||||
-
|
||||
- conn = establish_db_connection(config_file_options.conninfo, false);
|
||||
-
|
||||
- if (PQstatus(conn) != CONNECTION_OK)
|
||||
- {
|
||||
- /*
|
||||
- * a PostgreSQL connection is not required to stop repmgrd,
|
||||
- */
|
||||
- log_warning(_("unable to connect to local node"));
|
||||
- have_db_connection = false;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- check_shared_library(conn);
|
||||
-
|
||||
- if (is_repmgrd_running(conn) == false)
|
||||
- {
|
||||
- log_error(_("repmgrd appears to be stopped already"));
|
||||
- PQfinish(conn);
|
||||
- exit(ERR_REPMGRD_SERVICE);
|
||||
- }
|
||||
-
|
||||
- /* Attempt to fetch the PID, in case we need it later */
|
||||
- pid = repmgrd_get_pid(conn);
|
||||
- log_debug("retrieved pid is %i", pid);
|
||||
- }
|
||||
-
|
||||
- PQfinish(conn);
|
||||
-
|
||||
- initPQExpBuffer(&repmgrd_command);
|
||||
-
|
||||
- appendPQExpBufferStr(&repmgrd_command,
|
||||
- config_file_options.repmgrd_service_stop_command);
|
||||
-
|
||||
- if (runtime_options.dry_run == true)
|
||||
- {
|
||||
- log_info(_("prerequisites for stopping repmgrd met"));
|
||||
- log_detail("following command would be executed:\n %s", repmgrd_command.data);
|
||||
- exit(SUCCESS);
|
||||
- }
|
||||
-
|
||||
- log_notice(_("executing: \"%s\""), repmgrd_command.data);
|
||||
-
|
||||
- initPQExpBuffer(&output_buf);
|
||||
-
|
||||
- success = local_command(repmgrd_command.data, &output_buf);
|
||||
- termPQExpBuffer(&repmgrd_command);
|
||||
-
|
||||
- if (success == false)
|
||||
- {
|
||||
- log_error(_("unable to stop repmgrd"));
|
||||
- if (output_buf.data[0] != '\0')
|
||||
- log_detail("%s", output_buf.data);
|
||||
- termPQExpBuffer(&output_buf);
|
||||
- exit(ERR_REPMGRD_SERVICE);
|
||||
- }
|
||||
-
|
||||
- termPQExpBuffer(&output_buf);
|
||||
-
|
||||
- if (runtime_options.no_wait == true || runtime_options.wait == 0)
|
||||
- {
|
||||
- if (have_db_connection == true)
|
||||
- log_hint(REPMGR_SERVICE_STATUS_STOP_HINT);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- int i = 0;
|
||||
- int timeout = REPMGR_SERVICE_STOP_START_WAIT;
|
||||
- /*
|
||||
- *
|
||||
- */
|
||||
- if (pid == UNKNOWN_PID)
|
||||
- {
|
||||
- /*
|
||||
- * XXX attempt to get pidfile from config
|
||||
- * and get contents
|
||||
- * ( see check_and_create_pid_file() )
|
||||
- * if PID still unknown, exit here
|
||||
- */
|
||||
- log_warning(_("unable to determine repmgrd PID"));
|
||||
-
|
||||
- if (have_db_connection == true)
|
||||
- log_hint(REPMGR_SERVICE_STATUS_STOP_HINT);
|
||||
-
|
||||
- exit(ERR_REPMGRD_SERVICE);
|
||||
- }
|
||||
-
|
||||
- if (runtime_options.wait_provided)
|
||||
- timeout = runtime_options.wait;
|
||||
-
|
||||
- for (;;)
|
||||
- {
|
||||
- if (kill(pid, 0) == -1)
|
||||
- {
|
||||
- if (errno == ESRCH)
|
||||
- {
|
||||
- log_notice(_("repmgrd was successfully stopped"));
|
||||
- exit(SUCCESS);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- log_error(_("unable to determine status of process with PID %i"), pid);
|
||||
- log_detail("%s", strerror(errno));
|
||||
- exit(ERR_REPMGRD_SERVICE);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
-
|
||||
- if (i == timeout)
|
||||
- {
|
||||
- log_error(_("repmgrd does not appear to have stopped after %i seconds"),
|
||||
- timeout);
|
||||
-
|
||||
- if (have_db_connection == true)
|
||||
- log_hint(REPMGR_SERVICE_STATUS_START_HINT);
|
||||
-
|
||||
- exit(ERR_REPMGRD_SERVICE);
|
||||
- }
|
||||
-
|
||||
- log_debug("sleeping 1 second; %i of %i attempts to determine if repmgrd with PID %i is running",
|
||||
- i, timeout, pid);
|
||||
- sleep(1);
|
||||
- i++;
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
-
|
||||
|
||||
void do_service_help(void)
|
||||
{
|
||||
@@ -786,8 +505,7 @@ void do_service_help(void)
|
||||
printf(_(" %s [OPTIONS] service status\n"), progname());
|
||||
printf(_(" %s [OPTIONS] service pause\n"), progname());
|
||||
printf(_(" %s [OPTIONS] service unpause\n"), progname());
|
||||
- printf(_(" %s [OPTIONS] service start\n"), progname());
|
||||
- printf(_(" %s [OPTIONS] service stop\n"), progname());
|
||||
+
|
||||
puts("");
|
||||
|
||||
printf(_("SERVICE STATUS\n"));
|
||||
@@ -799,24 +517,6 @@ void do_service_help(void)
|
||||
printf(_(" --verbose show text of database connection error messages\n"));
|
||||
puts("");
|
||||
|
||||
- printf(_("SERVICE START\n"));
|
||||
- puts("");
|
||||
- printf(_(" \"service start\" attempts to start repmgrd\n"));
|
||||
- puts("");
|
||||
- printf(_(" --dry-run check prerequisites but don't start repmgrd\n"));
|
||||
- printf(_(" -w/--wait wait for repmgrd to start (default: %i seconds)\n"), REPMGR_SERVICE_STOP_START_WAIT);
|
||||
- printf(_(" --no-wait don't wait for repmgrd to start\n"));
|
||||
- puts("");
|
||||
-
|
||||
- printf(_("SERVICE STOP\n"));
|
||||
- puts("");
|
||||
- printf(_(" \"service stop\" attempts to stop repmgrd\n"));
|
||||
- puts("");
|
||||
- printf(_(" --dry-run check prerequisites but don't stop repmgrd\n"));
|
||||
- printf(_(" -w/--wait wait for repmgrd to stop (default: %i seconds)\n"), REPMGR_SERVICE_STOP_START_WAIT);
|
||||
- printf(_(" --no-wait don't wait for repmgrd to stop\n"));
|
||||
- puts("");
|
||||
-
|
||||
printf(_("SERVICE PAUSE\n"));
|
||||
puts("");
|
||||
printf(_(" \"service pause\" instructs repmgrd on each node to pause failover detection\n"));
|
||||
diff --git a/repmgr-action-service.h b/repmgr-action-service.h
|
||||
index a62ce75..e22c059 100644
|
||||
--- a/repmgr-action-service.h
|
||||
+++ b/repmgr-action-service.h
|
||||
@@ -23,8 +23,6 @@
|
||||
extern void do_service_status(void);
|
||||
extern void do_service_pause(void);
|
||||
extern void do_service_unpause(void);
|
||||
-extern void do_service_start(void);
|
||||
-extern void do_service_stop(void);
|
||||
|
||||
extern void do_service_help(void);
|
||||
#endif
|
||||
diff --git a/repmgr-client.c b/repmgr-client.c
|
||||
index ee7315c..c0e6263 100644
|
||||
--- a/repmgr-client.c
|
||||
+++ b/repmgr-client.c
|
||||
@@ -36,8 +36,9 @@
|
||||
* SERVICE STATUS
|
||||
* SERVICE PAUSE
|
||||
* SERVICE UNPAUSE
|
||||
- * SERVICE START
|
||||
- * SERVICE STOP
|
||||
+ *
|
||||
+ * DAEMON START
|
||||
+ * DAEMON STOP
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -70,6 +71,7 @@
|
||||
#include "repmgr-action-node.h"
|
||||
#include "repmgr-action-cluster.h"
|
||||
#include "repmgr-action-service.h"
|
||||
+#include "repmgr-action-daemon.h"
|
||||
|
||||
#include <storage/fd.h> /* for PG_TEMP_FILE_PREFIX */
|
||||
|
||||
@@ -952,8 +954,7 @@ main(int argc, char **argv)
|
||||
else if (strcasecmp(repmgr_action, "CLEANUP") == 0)
|
||||
action = CLUSTER_CLEANUP;
|
||||
}
|
||||
- /* allow "daemon" as an alias for "service" for repmgr 4.x compatibility */
|
||||
- else if (strcasecmp(repmgr_command, "SERVICE") == 0 || strcasecmp(repmgr_command, "DAEMON") == 0)
|
||||
+ else if (strcasecmp(repmgr_command, "SERVICE") == 0)
|
||||
{
|
||||
if (help_option == true)
|
||||
{
|
||||
@@ -967,10 +968,28 @@ main(int argc, char **argv)
|
||||
action = SERVICE_PAUSE;
|
||||
else if (strcasecmp(repmgr_action, "UNPAUSE") == 0)
|
||||
action = SERVICE_UNPAUSE;
|
||||
- else if (strcasecmp(repmgr_action, "START") == 0)
|
||||
- action = SERVICE_START;
|
||||
+
|
||||
+ }
|
||||
+ else if (strcasecmp(repmgr_command, "DAEMON") == 0)
|
||||
+ {
|
||||
+ if (help_option == true)
|
||||
+ {
|
||||
+ do_daemon_help();
|
||||
+ exit(SUCCESS);
|
||||
+ }
|
||||
+
|
||||
+ if (strcasecmp(repmgr_action, "START") == 0)
|
||||
+ action = DAEMON_START;
|
||||
else if (strcasecmp(repmgr_action, "STOP") == 0)
|
||||
- action = SERVICE_STOP;
|
||||
+ action = DAEMON_STOP;
|
||||
+
|
||||
+ /* allow "daemon" as an alias for "service" for repmgr 4.x compatibility */
|
||||
+ if (strcasecmp(repmgr_action, "STATUS") == 0)
|
||||
+ action = SERVICE_STATUS;
|
||||
+ else if (strcasecmp(repmgr_action, "PAUSE") == 0)
|
||||
+ action = SERVICE_PAUSE;
|
||||
+ else if (strcasecmp(repmgr_action, "UNPAUSE") == 0)
|
||||
+ action = SERVICE_UNPAUSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1383,11 +1402,13 @@ main(int argc, char **argv)
|
||||
case SERVICE_UNPAUSE:
|
||||
do_service_unpause();
|
||||
break;
|
||||
- case SERVICE_START:
|
||||
- do_service_start();
|
||||
+
|
||||
+ /* DAEMON */
|
||||
+ case DAEMON_START:
|
||||
+ do_daemon_start();
|
||||
break;
|
||||
- case SERVICE_STOP:
|
||||
- do_service_stop();
|
||||
+ case DAEMON_STOP:
|
||||
+ do_daemon_stop();
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -1755,8 +1776,8 @@ check_cli_parameters(const int action)
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
- case SERVICE_START:
|
||||
- case SERVICE_STOP:
|
||||
+ case DAEMON_START:
|
||||
+ case DAEMON_STOP:
|
||||
case STANDBY_FOLLOW:
|
||||
break;
|
||||
default:
|
||||
@@ -1769,8 +1790,8 @@ check_cli_parameters(const int action)
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
- case SERVICE_START:
|
||||
- case SERVICE_STOP:
|
||||
+ case DAEMON_START:
|
||||
+ case DAEMON_STOP:
|
||||
case NODE_REJOIN:
|
||||
break;
|
||||
default:
|
||||
@@ -1895,8 +1916,8 @@ check_cli_parameters(const int action)
|
||||
case NODE_SERVICE:
|
||||
case SERVICE_PAUSE:
|
||||
case SERVICE_UNPAUSE:
|
||||
- case SERVICE_START:
|
||||
- case SERVICE_STOP:
|
||||
+ case DAEMON_START:
|
||||
+ case DAEMON_STOP:
|
||||
break;
|
||||
default:
|
||||
item_list_append_format(&cli_warnings,
|
||||
@@ -2469,10 +2490,11 @@ action_name(const int action)
|
||||
return "SERVICE PAUSE";
|
||||
case SERVICE_UNPAUSE:
|
||||
return "SERVICE UNPAUSE";
|
||||
- case SERVICE_START:
|
||||
- return "SERVICE START";
|
||||
- case SERVICE_STOP:
|
||||
- return "SERVICE STOP";
|
||||
+
|
||||
+ case DAEMON_START:
|
||||
+ return "DAEMON START";
|
||||
+ case DAEMON_STOP:
|
||||
+ return "DAEMON STOP";
|
||||
}
|
||||
|
||||
return "UNKNOWN ACTION";
|
||||
@@ -2583,7 +2605,8 @@ do_help(void)
|
||||
printf(_(" %s [OPTIONS] node {status|check|rejoin|service}\n"), progname());
|
||||
printf(_(" %s [OPTIONS] cluster {show|event|matrix|crosscheck|cleanup}\n"), progname());
|
||||
printf(_(" %s [OPTIONS] witness {register|unregister}\n"), progname());
|
||||
- printf(_(" %s [OPTIONS] service {status|pause|unpause|start|stop}\n"), progname());
|
||||
+ printf(_(" %s [OPTIONS] service {status|pause|unpause}\n"), progname());
|
||||
+ printf(_(" %s [OPTIONS] daemon {start|stop}\n"), progname());
|
||||
|
||||
puts("");
|
||||
|
||||
diff --git a/repmgr-client.h b/repmgr-client.h
|
||||
index 679aa38..9620849 100644
|
||||
--- a/repmgr-client.h
|
||||
+++ b/repmgr-client.h
|
||||
@@ -49,8 +49,8 @@
|
||||
#define SERVICE_STATUS 23
|
||||
#define SERVICE_PAUSE 24
|
||||
#define SERVICE_UNPAUSE 25
|
||||
-#define SERVICE_START 26
|
||||
-#define SERVICE_STOP 27
|
||||
+#define DAEMON_START 26
|
||||
+#define DAEMON_STOP 27
|
||||
|
||||
/* command line options without short versions */
|
||||
#define OPT_HELP 1001
|
||||
Reference in New Issue
Block a user