Re: Question: script to start DB on server reboot

From: "Aurangzeb M(dot) Agha" <ama-list(at)mltp(dot)com>
To: "scott(dot)marlowe" <scott(dot)marlowe(at)ihs(dot)com>
Cc: PostgreSQL General List <pgsql-general(at)postgresql(dot)org>
Subject: Re: Question: script to start DB on server reboot
Date: 2003-06-20 22:06:28
Message-ID: Pine.LNX.4.53.0306201504410.8746@cinemaspace.berkeley.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi Scott --

I'm running on Red Hat 7.2. I'll have a look at the scripts you've
mentioned, but the prob is that since this is a "virtual server", I don't
have root privileges. Your assessment is correct.

Thanks for the permissions info on the DB server.

Rgs,
Zeb

On Fri, 13 Jun 2003, scott.marlowe wrote:

:What OS are you on? There are standard startup scripts for both BSD and
:Linux in the /contrib/start-scripts directory which should work, but they
:need to be run by root I believe. Are you saying you can't get a script
:run by root at startup to start postgresql?
:
:The recommendation on changing the directory permissions is misguided, as
:you NEED to have the permissions at 700 for postgresql to start up, and no
:one but the postgres superuser (whatever account that may be) should be
:able to go in there.
:
:On Sun, 8 Jun 2003, Aurangzeb M. Agha wrote:
:
:> This is more a scripting question than a DB question but since it relates
:> to Postgres, and since I'm sure others on this list have tackled this same
:> problem, I'm hoping I'll be able to get some help here. Apologies in
:> advance if this is the incorrect forum.
:>
:> I have a site hosted by an ISP which, for one reason or another, often
:> needs to restart their server after upgrades, maintenance, etc... When
:> this happens, I need a script to restart my server and my Java processes.
:> While I've got the entire script written, I'm having a major problem
:> getting the DB to start up due to the permissions on the DB dir.
:>
:> The dir out of which my application is served has the following contents:
:>
:> drwxr-xr-x 9 admin admin 4096 Mar 30 14:22 .
:> drwxr-xr-x 3 admin admin 4096 Mar 31 08:58 ..
:> drwx------ 6 postgres postgres 4096 May 19 20:55 DB
:> drwxr-xr-x 5 admin admin 4096 Mar 29 02:01 backup
:> ...
:> drwxr-xr-x 3 admin admin 4096 Mar 28 23:06 lib
:>
:> Note that my DB dir has 700 permissions for the Postgres user and group.
:> This has made it impossible for me to effect any change in this dir when
:> the script runs--the script is run on startup by the admin user (this is
:> requirement due to the setup by the ISP, and I don't have the power to run
:> the script as root).
:>
:> What I need to do is very simple. Before I start any of my other
:> processes (Java, Apache, etc...), I want to start up the DB:
:>
:> 1. Remove postmaster.pid if it exists
:> 2. Backup the existing log file
:> 3. Start the DB
:>
:> However, I can't even get into the dir due to its permission structure.
:> Is my permission structure for the DB incorrect?
:>
:> So far, I have the following for my bash script (Note: This is my first
:> bash script, so go easy). The first line of code is the tricky one, since
:> I'm not able to check for the file's existance with the current permission
:> structure I have:
:>
:> # We only run this script if the DB is running (postmaster.pid exists).
:> # If the DB is not running, don't bother to do anything else, as the site
:> # is probably down for a good reason. Postmaster.pid is in the DB dir,
:> # which is only accessible to the 'postgres' user, so how do we run this
:> # script, since we can only run it as 'admin', and the permission
:> # structure of the DB dir only allows 'postgres' user access?
:> if [ -f /usr/local/G101/App/DB/postmaster.pid ]; then
:>
:> # From here on out, everything can be done by the 'admin' user
:>
:> # Check how many java processes are running; if there
:> # are less than two (arbitrary), we need to restart Resin
:> $numJavaProcs=`ps -ef | grep -i java | grep -v grep | wc -l`
:> if [ $numJavaProcs -lt 2 ]; then
:>
:> # Run the runResin-site.sh script to start up Resin.
:> # Do we need to specify the nohup if the command is run by
:> # a script?
:> nohup /usr/local/G101/App/bin/runResin-site.sh &
:>
:> # Move the nohup.out file to the logs dir
:> mv /usr/local/G101/App/bin/nohup.out
:> /usr/local/G101/App/bin/logs/nohup-site.out
:>
:> # Is there a way to send mail to aagha(at)greece101(dot)com here
:> # to let the admin know that Resin had to be restarted?
:> # mail -s "Resin had to be restarted!" aagha(at)greece101(dot)com
:> fi
:> fi
:>
:> # Do we need this to end the program?
:> exit 0;
:>
:> Anyone have any thoughts or suggestions?
:>
:> Thanks in Advance,
:> Aurangzeb
:>
:> ---------------------------(end of broadcast)---------------------------
:> TIP 2: you can get off all lists at once with the unregister command
:> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
:>
:

--
Aurangzeb M. Agha | Email : ama(at)mltp(dot)com
| Home : +1 617 739.7324
38A Saint Paul St. #2 | Mobile: <coming soon>
Brookline, MA 02446 | e-Fax : +1 978 246.0770
USA | PGP id: <coming soon>

"Those who would give up essential liberty to purchase a little
temporary safety deserve neither liberty nor safety."

- Benjamin Franklin

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Dennis Gearon 2003-06-20 22:50:45 Database geeks
Previous Message Sailesh Krishnamurthy 2003-06-20 21:23:08 Re: [HACKERS] psql