p4d_base #1

  • //
  • guest/
  • trina/
  • sdp/
  • main/
  • Server/
  • Unix/
  • p4/
  • common/
  • bin/
  • p4d_base
  • View
  • Commits
  • Open Download .zip Download (2 KB)
#!/bin/bash
#==============================================================================
# Copyright and license info is available in the LICENSE file included with
# the Server Deployment Package (SDP), and also available online:
# https://swarm.workshop.perforce.com/projects/perforce-software-sdp/view/main/LICENSE
#------------------------------------------------------------------------------

#
# Perforce server base init script

# do nothing unless $SDP_INSTANCE is defined.
if [[ -z $SDP_INSTANCE ]]; then
   echo $SDP_INSTANCE
   echo "SDP_INSTANCE is invalid."
   exit 1
fi

export TMP=$P4TMP

if [[ ! -x $P4DBIN ]] ; then
   echo "$P4DBIN is not executable."
   exit 2;
fi

if [[ `$ID -u` = 0 ]]; then
   exec su - $OSUSER -c "$0 $1"
elif [[ "`$ID -u -n`" != $OSUSER ]]; then
   echo "$0 can only be run by root or $OSUSER"
   exit 1
fi

# See how we were called.
case "$1" in
   force_start)
      echo "Starting $P4DBIN $P4D_FLAGS"
      $P4DBIN $P4D_FLAGS
   ;;
   start)
      if [[ -r $P4ROOT/db.domain ]]; then
         PreflightLog=${P4TMP}/preflight.log
         $P4DBIN -r $P4ROOT -xvU > $PreflightLog 2>&1
         ExitCode=$?
         echo EXIT_CODE=$ExitCode >> $PreflightLog

         if [[ $ExitCode -ne 0 ]]; then
            echo -e "\nError: DB check with 'p4d -xvU' failed.  Database integrity is in question.  Please Contact Perforce Support ([email protected]).  The force_start option is availble, but not recommended.  See:\n"
            cat $PreflightLog
            /bin/rm -f $PreflightLog
            exit 1
         else
            /bin/rm -f $PreflightLog
         fi
      fi

#     "Setting P4JOURNAL in the database to $P4JOURNAL"
      $P4DBIN -r $P4ROOT "-cset P4JOURNAL=$P4JOURNAL"
      echo "Starting $P4DBIN $P4D_FLAGS"
      $P4DBIN $P4D_FLAGS
   ;;
   status)
      $P4BIN -p $P4PORT -u $P4USER info -s
   ;;
   stop)
      echo -n "Shutting down $P4DBIN: "
      if [[ "${P4REPLICA}" == "FALSE" ]]; then
         $P4BIN -p $P4PORT -u $P4USER login < /p4/common/bin/adminpass
      fi
      $P4BIN -p $P4PORT -u $P4USER admin stop
      sleep 5
      $P4BIN -p $P4PORT info > /dev/null 2>&1
      ExitCode=$?
      if [[ $ExitCode -eq 0 ]]; then
         echo -e "\nError: Server shutdown failed."
         exit 1
      else
         exit 0
      fi
   ;;
   restart)
      $0 stop
      $0 start
   ;;
   *)
      echo "Usage: $0 {start|stop|status|restart|force_start}"
      exit 1
   ;;
esac

exit 0

# Change User Description Committed
#1 19278 trina "Forking branch Main of perforce-software-sdp to trina-sdp."
//guest/perforce_software/sdp/main/Server/Unix/p4/common/bin/p4d_base
#11 18688 Russell C. Jackson (Rusty) Copy dev to main
#10 17315 C. Thomas Tyler Released SDP/MultiArch/2016.1/17297 (2016/02/03).

Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'.
#9 16263 Russell C. Jackson (Rusty) Added shutdown check to init script and used it in weekly_sync_replica.
#8 15856 C. Thomas Tyler Replaced the big license comment block with a shortened
form referencing the LICENSE file included with the SDP
package, and also by the URL for the license file in
The Workshop.
#7 15777 C. Thomas Tyler No functional changes.

Style Policing only on bash scripts only.

Normalized indentation and line breaks, removed offending tabs, and general whitespace
usage.
#6 15776 C. Thomas Tyler Fixed a typo, a spurious back-tick (`) character that somehow
snuck in.  Also fixed some tab/whitespace inconsistency issues.
#5 15775 Russell C. Jackson (Rusty) Added test to only login on a master
#4 13908 C. Thomas Tyler Pushing SDP 2015.1.13906.
#3 12171 Russell C. Jackson (Rusty) Merge in changes to remove the need for p4master_run.
#2 11524 Russell C. Jackson (Rusty) Released updated version of the SDP from Dev.
#1 10148 C. Thomas Tyler Promoted the Perforce Server Deployment Package to The Workshop.