Re: Question: script to start DB on server reboot - Mailing list pgsql-general
From | Aurangzeb M. Agha |
---|---|
Subject | Re: Question: script to start DB on server reboot |
Date | |
Msg-id | Pine.LNX.4.53.0306201504410.8746@cinemaspace.berkeley.edu Whole thread Raw |
In response to | Re: Question: script to start DB on server reboot ("scott.marlowe" <scott.marlowe@ihs.com>) |
List | 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@greece101.com here :> # to let the admin know that Resin had to be restarted? :> # mail -s "Resin had to be restarted!" aagha@greece101.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@postgresql.org) :> : -- Aurangzeb M. Agha | Email : ama@mltp.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
pgsql-general by date: