# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
-# $Id: functions,v 1.3 2006/04/10 15:53:49 mlhuang Exp $
+# $Id$
#
export PATH=/sbin:/bin:/usr/bin:/usr/sbin
[ -n "${pid:-}" -a -z "${force:-}" ] && return
# And start it up.
- (exec -a plc_${base} $*)
+ # Thierry -- June 18 2007
+ # when invoking, e.g. service plc start httpd from an ssh connection
+ # ssh stupidly hangs when everything is done
+ # it turns out the forked ssh daemon exhibits the following stack at that point
+ # (gdb) where
+ # #0 0x001d6402 in __kernel_vsyscall ()
+ # #1 0x003c2e7d in ___newselect_nocancel () from /lib/libc.so.6
+ # #2 0x004387b4 in main () from /usr/sbin/sshd
+ # So I figured the various file descriptors used were not properly closed
+ (exec 3>&- 4>&- ; exec -a plc_${base} $*)
ret=$?
if [ -f /var/run/${base}.pid ] ; then
perl -MSocket -e '($a,$b,$c,$d,@addrs) = gethostbyname($ARGV[0]); print inet_ntoa($addrs[0]) . "\n";' $1 2>/dev/null
}
-# Print the CNAME of an SSL certificate
-ssl_cname ()
-{
- openssl x509 -noout -in $1 -subject | \
- sed -n -e 's@.*/CN=\([^/]*\).*@\1@p'
-}
-
# Forcefully make a symlink
symlink ()
{
ln -s $1 $2
}
+# Argument(s) or stdin to lowercase stdout
+lower ()
+{
+ if [ ${#*} -ge 1 ] ; then
+ tr A-Z a-z <<<$*
+ else
+ tr A-Z a-z
+ fi
+}
+
+# Argument(s) or stdin to uppercase stdout
+upper ()
+{
+ if [ ${#*} -ge 1 ] ; then
+ tr a-z A-Z <<<$*
+ else
+ tr a-z A-Z
+ fi
+}
+
# Make copies of stdout and stderr. The plc initscript redirects
# stdout and stderr to a logfile if -v is not specified.
-[ ! -e /dev/fd/3 ] && exec 3>&1
-[ ! -e /dev/fd/4 ] && exec 4>&2
+[ ! -e /proc/self/fd/3 ] && exec 3>&1
+[ ! -e /proc/self/fd/4 ] && exec 4>&2