diff --git a/doc/src/sgml/ref/pg_ctl-ref.sgml b/doc/src/sgml/ref/pg_ctl-ref.sgml
index ea0a6353d8e..5fb68986998 100644
--- a/doc/src/sgml/ref/pg_ctl-ref.sgml
+++ b/doc/src/sgml/ref/pg_ctl-ref.sgml
@@ -301,6 +301,7 @@ PostgreSQL documentation
 
      <varlistentry>
       <term><option>-o <replaceable class="parameter">options</replaceable></option></term>
+      <term><option>--options=<replaceable class="parameter">options</replaceable></option></term>
       <listitem>
        <para>
         Specifies options to be passed directly to the
@@ -316,6 +317,7 @@ PostgreSQL documentation
 
      <varlistentry>
       <term><option>-o <replaceable class="parameter">initdb-options</replaceable></option></term>
+      <term><option>--options=<replaceable class="parameter">initdb-options</replaceable></option></term>
       <listitem>
        <para>
         Specifies options to be passed directly to the
diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c
index 7d97232613a..4b476022c0e 100644
--- a/src/bin/pg_ctl/pg_ctl.c
+++ b/src/bin/pg_ctl/pg_ctl.c
@@ -1972,7 +1972,7 @@ do_help(void)
 	printf(_("  -c, --core-files       not applicable on this platform\n"));
 #endif
 	printf(_("  -l, --log=FILENAME     write (or append) server log to FILENAME\n"));
-	printf(_("  -o OPTIONS             command line options to pass to postgres\n"
+	printf(_("  -o, --options=OPTIONS  command line options to pass to postgres\n"
 	 "                         (PostgreSQL server executable) or initdb\n"));
 	printf(_("  -p PATH-TO-POSTGRES    normally not necessary\n"));
 	printf(_("\nOptions for stop or restart:\n"));
@@ -2171,6 +2171,7 @@ main(int argc, char **argv)
 		{"log", required_argument, NULL, 'l'},
 		{"mode", required_argument, NULL, 'm'},
 		{"pgdata", required_argument, NULL, 'D'},
+		{"options", required_argument, NULL, 'o'},
 		{"silent", no_argument, NULL, 's'},
 		{"timeout", required_argument, NULL, 't'},
 		{"core-files", no_argument, NULL, 'c'},