#!/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 #------------------------------------------------------------------------------ # P4FTP base init script # Do nothing unless $SDP_INSTANCE is defined. export SDP_INSTANCE=${1:-Unset} if [[ $SDP_INSTANCE == Unset ]]; then echo -e "\nError: The SDP_INSTANCE is not defined.\n." exit 1 fi # Load SDP controlled shell environment. source /p4/common/bin/p4_vars "$SDP_INSTANCE" if [[ $? -ne 0 ]]; then echo -e "\nError: Failed to load SDP environment for instance $SDP_INSTANCE.\n" exit 1 fi if [[ $(id -u) -ne 0 ]]; then echo "$0 can only be run as root." exit 1 fi if [[ ! -x $P4FTPBIN ]]; then echo -e "\nError: $P4FTPBIN is not executable." exit 2; fi # See how we were called. case "${2:-usage}" in start) $P4FTPBIN $P4FTPARGS ps -ef | grep "p4ftpd_${SDP_INSTANCE}" |grep -v grep|grep -v p4ftpd_${SDP_INSTANCE}_init|awk '{ print $2}' > $P4HOME/pid.p4ftpd_${SDP_INSTANCE} ;; status) PID=$(cat /p4/${INSTANCE}/pid.p4ftpd_${INSTANCE}) PID=$(echo $PID) $PS -p $PID > /dev/null 2>&1 if [[ $? -eq 0 ]]; then echo -e "\n$P4FTPBIN is running as pid $PID." else echo -e "\n$P4FTPBIN is NOT running." fi ;; stop) echo -n "Shutting down $P4FTPBIN: " PID=`cat /p4/${INSTANCE}/pid.p4ftpd_${INSTANCE}` kill $PID echo ;; restart) $0 $SDP_INSTANCE stop $0 $SDP_INSTANCE start ;; *) echo -e "\nUsage: $0 SDP_INSTANCE {start|stop|status|restart}\n" exit 1 ;; esac exit 0