aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-06-08 22:28:30 +0000
committerBruce Momjian <bruce@momjian.us>1998-06-08 22:28:30 +0000
commit3912b757050b5380939a474f1e244f5ce5c411f0 (patch)
treea1559ba3daa94054ac01e3a20f61fb0f8ccafa2a /src
parentb206958d13d29d2ab2ebd8f0dbd94674402ec4cf (diff)
downloadpostgresql-3912b757050b5380939a474f1e244f5ce5c411f0.tar.gz
postgresql-3912b757050b5380939a474f1e244f5ce5c411f0.zip
Fixed exec path problem.
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/postmaster.c16
-rw-r--r--src/backend/tcop/postgres.c6
-rw-r--r--src/backend/utils/init/findbe.c18
-rw-r--r--src/include/miscadmin.h4
4 files changed, 27 insertions, 17 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 706d7d6a8f0..06ecedd21eb 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.83 1998/06/08 19:36:40 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.84 1998/06/08 22:28:26 momjian Exp $
*
* NOTES
*
@@ -315,9 +315,19 @@ PostmasterMain(int argc, char *argv[])
for (; i < 4; i++)
new_argv[i] = "";
new_argv[4] = NULL;
+
+ if (!Execfile[0] && FindExec(Execfile, argv[0]) < 0)
+ {
+ fprintf(stderr, "%s: could not find postmaster to execute...\n",
+ argv[0]);
+ exit(1);
+ }
+ new_argv[0] = Execfile;
+
execv(new_argv[0], new_argv);
- perror(new_argv[0]);
+
/* How did we get here, error! */
+ perror(new_argv[0]);
fprintf(stderr, "PostmasterMain execv failed on %s\n", argv[0]);
exit(1);
}
@@ -461,7 +471,7 @@ PostmasterMain(int argc, char *argv[])
exit(2);
}
- if (!Execfile[0] && FindBackend(Execfile, argv[0]) < 0)
+ if (!Execfile[0] && FindExec(Execfile, argv[0]) < 0)
{
fprintf(stderr, "%s: could not find backend to execute...\n",
argv[0]);
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 0c6cc0f40f4..e2a778b4916 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.73 1998/06/04 17:26:45 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.74 1998/06/08 22:28:27 momjian Exp $
*
* NOTES
* this is the "main" module of the postgres backend and
@@ -1167,7 +1167,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
SetCharSet();
#endif
- if (FindBackend(pg_pathname, argv[0]) < 0)
+ if (FindExec(pg_pathname, argv[0]) < 0)
elog(FATAL, "%s: could not locate executable, bailing out...",
argv[0]);
@@ -1314,7 +1314,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
if (!IsUnderPostmaster)
{
puts("\nPOSTGRES backend interactive interface");
- puts("$Revision: 1.73 $ $Date: 1998/06/04 17:26:45 $");
+ puts("$Revision: 1.74 $ $Date: 1998/06/08 22:28:27 $");
}
/* ----------------
diff --git a/src/backend/utils/init/findbe.c b/src/backend/utils/init/findbe.c
index e2cc9219a74..74571ebc4ab 100644
--- a/src/backend/utils/init/findbe.c
+++ b/src/backend/utils/init/findbe.c
@@ -6,7 +6,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.7 1997/09/08 02:31:53 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.8 1998/06/08 22:28:28 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -144,14 +144,14 @@ ValidateBackend(char *path)
}
/*
- * FindBackend -- find an absolute path to a valid backend executable
+ * FindExec -- find an absolute path to a valid backend executable
*
* The reason we have to work so hard to find an absolute path is that
* we need to feed the backend server the location of its actual
* executable file -- otherwise, we can't do dynamic loading.
*/
int
-FindBackend(char *backend, char *argv0)
+FindExec(char *backend, char *argv0)
{
char buf[MAXPGPATH + 2];
char *p;
@@ -188,11 +188,11 @@ FindBackend(char *backend, char *argv0)
{
strncpy(backend, buf, MAXPGPATH);
if (DebugLvl)
- fprintf(stderr, "FindBackend: found \"%s\" using argv[0]\n",
+ fprintf(stderr, "FindExec: found \"%s\" using argv[0]\n",
backend);
return (0);
}
- fprintf(stderr, "FindBackend: invalid backend \"%s\"\n",
+ fprintf(stderr, "FindExec: invalid backend \"%s\"\n",
buf);
return (-1);
}
@@ -204,7 +204,7 @@ FindBackend(char *backend, char *argv0)
if ((p = getenv("PATH")) && *p)
{
if (DebugLvl)
- fprintf(stderr, "FindBackend: searching PATH ...\n");
+ fprintf(stderr, "FindExec: searching PATH ...\n");
pathlen = strlen(p);
path = malloc(pathlen + 1);
strcpy(path, p);
@@ -225,14 +225,14 @@ FindBackend(char *backend, char *argv0)
case 0: /* found ok */
strncpy(backend, buf, MAXPGPATH);
if (DebugLvl)
- fprintf(stderr, "FindBackend: found \"%s\" using PATH\n",
+ fprintf(stderr, "FindExec: found \"%s\" using PATH\n",
backend);
free(path);
return (0);
case -1: /* wasn't even a candidate, keep looking */
break;
case -2: /* found but disqualified */
- fprintf(stderr, "FindBackend: could not read backend \"%s\"\n",
+ fprintf(stderr, "FindExec: could not read backend \"%s\"\n",
buf);
free(path);
return (-1);
@@ -243,6 +243,6 @@ FindBackend(char *backend, char *argv0)
free(path);
}
- fprintf(stderr, "FindBackend: could not find a backend to execute...\n");
+ fprintf(stderr, "FindExec: could not find a backend to execute...\n");
return (-1);
}
diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h
index d7cee404c58..0c6dcfaaf97 100644
--- a/src/include/miscadmin.h
+++ b/src/include/miscadmin.h
@@ -11,7 +11,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: miscadmin.h,v 1.24 1998/05/29 17:00:22 momjian Exp $
+ * $Id: miscadmin.h,v 1.25 1998/06/08 22:28:30 momjian Exp $
*
* NOTES
* some of the information in this file will be moved to
@@ -126,7 +126,7 @@ extern void SetPgUserName(void);
extern Oid GetUserId(void);
extern void SetUserId(void);
extern int ValidateBackend(char *path);
-extern int FindBackend(char *backend, char *argv0);
+extern int FindExec(char *backend, char *argv0);
extern int CheckPathAccess(char *path, char *name, int open_mode);
/* lower case version for case-insensitive SQL referenced in pg_proc.h */