summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Shoemaker <kutsuya@gentoo.org>2003-02-26 07:29:22 +0000
committerJason Shoemaker <kutsuya@gentoo.org>2003-02-26 07:29:22 +0000
commit0e46db125065dfa92249efe4253e82d2d5ce0e81 (patch)
tree2c7261abe82df5fa32c7b2d8c432fa325fc658da /net-www/zope/files/2.6.0/zope-r2.initd
parentFixed dependencies. Added functions to preserve certain .txt files from (diff)
downloadhistorical-0e46db125065dfa92249efe4253e82d2d5ce0e81.tar.gz
historical-0e46db125065dfa92249efe4253e82d2d5ce0e81.tar.bz2
historical-0e46db125065dfa92249efe4253e82d2d5ce0e81.zip
Fixed dependencies, changed slot to '0'. Added ability to change python versions. Change zope user details. Added RCNAME to make my job easier.
Diffstat (limited to 'net-www/zope/files/2.6.0/zope-r2.initd')
-rw-r--r--net-www/zope/files/2.6.0/zope-r2.initd175
1 files changed, 175 insertions, 0 deletions
diff --git a/net-www/zope/files/2.6.0/zope-r2.initd b/net-www/zope/files/2.6.0/zope-r2.initd
new file mode 100644
index 000000000000..80a1a14a2f7f
--- /dev/null
+++ b/net-www/zope/files/2.6.0/zope-r2.initd
@@ -0,0 +1,175 @@
+#!/sbin/runscript
+# Zope rc-script for Gentoo Linux
+# Copyright 2002-2003 by Jason Shoemaker
+# Distributed under the terms of the GNU General Public License, v2 or later.
+# $Header: /var/cvsroot/gentoo-x86/net-www/zope/files/2.6.0/zope-r2.initd,v 1.1 2003/02/26 07:29:22 kutsuya Exp $
+
+python=
+
+depend()
+{
+ need net
+}
+
+# Since zope doesn't delete its .pid file when done, we have to determine its
+# status. Zope can be shutdown from a browser...this bypasses init.d.
+
+# Need to export these conf.d variables so that (env) can use them
+
+setup_exports()
+{
+local EXPORT_LST="INSTANCE_HOME SOFTWARE_HOME ZOPE_HOME FORCE_PRODUCT_LOAD \
+PROFILE_PUBLISHER SUPPRESS_ACCESSRULE SUPPRESS_SITEROOT CLIENT_HOME \
+ZEO_CLIENT EVENT_LOG_FORMAT EVENT_LOG_FILE EVENT_LOG_SEVERITY ZSYSLOG \
+ZSYSLOG_FACILITY ZSYSLOG_SERVER ZSYSLOG_ACCESS ZSYSLOG_ACCESS_FACILITY \
+ZSYSLOG_ACCESS_SERVER Z_DEBUG_MODE Z_REALM NO_SECURITY ZOPE_SECURITY_POLICY \
+ZSP_OWNEROUS_SKIP ZSP_AUTHENTICATED_SKIP DISALLOW_LOCAL_PRODUCTS \
+ZOPE_DATABASE_QUOTA ZOPE_READ_ONLY ZSESSION_ADD_NOTIFY ZSESSION_DEL_NOTIFY \
+ZSESSION_TIMEOUT_MINS ZSESSION_OBJECT_LIMIT WEBDAV_SOURCE_PORT_CLIENTS \
+STX_DEFAULT_LEVEL ZOPE_DTML_REQUEST_AUTOQUOTE Z_MAX_STACK_SIZE \
+FORCE_PRODUCT_RELOAD"
+
+for N in $EXPORT_LST ; do
+ if [ -n "${N}" ] ; then export ${N} ; fi
+done
+}
+
+# Check if the file exist. then send file to stdout.
+# Parameters:
+# $1 = /path/to/pid.file
+# Outputs:
+
+read_pid()
+{
+ if [ -f "${1}" ] ; then
+ cat ${1}
+ fi
+}
+
+# Check if we have a living PID, if not delete the PID FILE
+# Parameters:
+# $1 = /path/to/pid.file
+# Returns:
+# 0 if alive pid file remains
+# 1 if dead pid file removed
+# 2 if no pid file found
+
+check_pid_status()
+{
+ local RESULT=2 # assume no pid file will be found
+ local PID=$(read_pid ${1})
+
+ if [ -n "${PID}" ] ; then
+ ps --no-headers ${PID} > /dev/null 2>&1
+ if [ "${?}" -eq 0 ] ; then
+ RESULT=0
+ else
+ rm -f ${1}
+ RESULT=1
+ fi
+ fi
+
+ return ${RESULT}
+}
+
+# Parameters:
+# None
+# Returns:
+# 0 true
+# 1 false and echos /pathname/to/pid/file
+
+is_zope_dead()
+{
+ local RESULT=
+
+ if [ -n "${INSTANCE_HOME}" ] ; then
+ loc=${INSTANCE_HOME}
+ else
+ loc=${ZOPE_HOME}
+ fi
+
+ check_pid_status ${loc}/var/Z2.pid
+ RESULT=${?}
+ if [ "${RESULT}" -eq 0 ] ; then
+ echo "${loc}"
+ RESULT=10
+ break # found a live pid
+ fi
+
+ if [ "${RESULT}" -eq 10 ] ; then
+ RESULT=1
+ else
+ RESULT=0
+ fi
+
+ return ${RESULT}
+}
+
+status()
+{
+
+ if is_zope_dead ; then
+ eerror "--> Zope is dead."
+ else
+ einfo "--> Zope is alive."
+ fi
+
+ return ((! is_zope_dead))
+}
+
+# If Zope is dead, remove PID file and start zope.
+# The idea with 'env' is that a environment snapshot
+# (current vars + /etc/conf.d/zope?) is created for zope to use.
+
+start_zope()
+{
+ local RESULT=
+
+ is_zope_dead >/dev/null
+ RESULT=${?}
+ if [ "${RESULT}" -eq 0 ] ; then
+ setup_exports
+ umask 077 # Recommended by Zope
+ env /usr/bin/${python} ${ZOPE_HOME}z2.py ${ZOPE_OPTS} &
+ RESULT=${?}
+ else
+ echo 'Zope is running independant of RC management.'
+ echo 'We are going to try and kill it.'
+ stop_zope
+ if [ "${?}" -eq 0 ] ; then
+ echo 'Successfully killed zope. Try to start zope again'
+ fi
+ fi
+
+ return ${RESULT}
+}
+
+# If Zope is alive, kill it.
+
+stop_zope()
+{
+ local PID=$(is_zope_dead)
+
+ if [ -n "${PID}" ] ; then
+ kill $(cat ${PID}/var/Z2.pid) # Not sure if kill always succeeds, so not removeing .pid file.
+ fi
+ return $?
+}
+
+#
+
+start()
+{
+ ebegin "Starting zope"
+ start_zope
+ eend $? "Failed to start zope"
+}
+
+#
+
+stop()
+{
+ ebegin "Stopping zope"
+ stop_zope
+ eend $? "Failed to stop zope"
+}