From 69290ffe9488ea5d5b3c3b9ccc875d1a0bab393c Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Thu, 1 Oct 2009 04:34:09 -0400 Subject: [PATCH] launchdaemon support for MacOS the changes needed to switch from a StartupItem to a LaunchDaemon for the MacOS OpenAFS client Reviewed-on: http://gerrit.openafs.org/564 Tested-by: Claudio Bisegni Tested-by: Derrick Brashear Reviewed-by: Claudio Bisegni Reviewed-by: Derrick Brashear --- src/packaging/MacOS/OpenAFS.post_install | 4 ++-- src/packaging/MacOS/OpenAFS.pre_upgrade | 4 ++++ src/packaging/MacOS/buildpkg.sh.in | 16 ++++++++-------- src/packaging/MacOS/openafs.launchd.plist | 17 +++++++++++++++++ src/packaging/MacOS/openafs.launchdaemon | 19 +++++++++++++++++++ 5 files changed, 50 insertions(+), 10 deletions(-) create mode 100644 src/packaging/MacOS/openafs.launchd.plist create mode 100644 src/packaging/MacOS/openafs.launchdaemon diff --git a/src/packaging/MacOS/OpenAFS.post_install b/src/packaging/MacOS/OpenAFS.post_install index 9483b9dc6..72047bd08 100644 --- a/src/packaging/MacOS/OpenAFS.post_install +++ b/src/packaging/MacOS/OpenAFS.post_install @@ -123,5 +123,5 @@ elif [ -e config/afssettings ]; then fi #here we should run tools which configure the client, and then if it's enabled: -/Library/StartupItems/OpenAFS/OpenAFS start - +#/Library/StartupItems/OpenAFS/OpenAFS start +launchctl load -w /Library/LaunchDaemons/org.openafs.filesystems.afs.plist diff --git a/src/packaging/MacOS/OpenAFS.pre_upgrade b/src/packaging/MacOS/OpenAFS.pre_upgrade index 9b1f721fb..aa10c37e5 100644 --- a/src/packaging/MacOS/OpenAFS.pre_upgrade +++ b/src/packaging/MacOS/OpenAFS.pre_upgrade @@ -25,4 +25,8 @@ fi if [ -f /Library/StartupItems/OpenAFS/OpenAFS ]; then /Library/StartupItems/OpenAFS/OpenAFS stop +else + if [ -f /Library/LaunchDaemons/org.openafs.filesystems.afs.plist ]; then + launchctl stop org.openafs.filesystems.afs + fi fi diff --git a/src/packaging/MacOS/buildpkg.sh.in b/src/packaging/MacOS/buildpkg.sh.in index 087eab2dd..50d6f411a 100644 --- a/src/packaging/MacOS/buildpkg.sh.in +++ b/src/packaging/MacOS/buildpkg.sh.in @@ -113,20 +113,20 @@ if [ $firstpass = yes ]; then mkdir -p $PKGROOT/Library/OpenAFS/Tools (cd $BINDEST && pax -rw * $PKGROOT/Library/OpenAFS/Tools) cd $RESSRC - mkdir -p $PKGROOT/Library/StartupItems/OpenAFS - cp $BINDEST/root.client/usr/vice/etc/afs.rc $PKGROOT/Library/StartupItems/OpenAFS/OpenAFS - chmod a+x $PKGROOT/Library/StartupItems/OpenAFS/OpenAFS - cp $BINDEST/root.client/usr/vice/etc/StartupParameters.plist $PKGROOT/Library/StartupItems/OpenAFS/StartupParameters.plist - chown -R root${SEP}admin $PKGROOT/Library + mkdir -p $PKGROOT/Library/LaunchDaemons chmod -R o-w $PKGROOT/Library - chmod -R g+w $PKGROOT/Library - chown -R root${SEP}wheel $PKGROOT/Library/StartupItems - chmod -R og-w $PKGROOT/Library/StartupItems + chmod -R g-w $PKGROOT/Library + cp openafs.launchd.plist $PKGROOT/Library/LaunchDaemons/org.openafs.filesystems.afs.plist + chmod 644 $PKGROOT/Library/LaunchDaemons/org.openafs.filesystems.afs.plist + chown root${SEP}admin $PKGROOT/Library + chown -R root${SEP}wheel $PKGROOT/Library/LaunchDaemons chown -R root${SEP}wheel $PKGROOT/Library/OpenAFS/Tools chmod -R og-w $PKGROOT/Library/OpenAFS/Tools mkdir -p $PKGROOT/private/var/db/openafs/cache mkdir -p $PKGROOT/private/var/db/openafs/etc/config + cp openafs.launchdaemon $PKGROOT/private/var/db/openafs/etc/launchafs.sh + chmod 755 $PKGROOT/private/var/db/openafs/etc/launchafs.sh cp $CURDIR/CellServDB $PKGROOT/private/var/db/openafs/etc/CellServDB.master echo grand.central.org > $PKGROOT/private/var/db/openafs/etc/ThisCell.sample if [ $majorvers -ge 7 ]; then diff --git a/src/packaging/MacOS/openafs.launchd.plist b/src/packaging/MacOS/openafs.launchd.plist new file mode 100644 index 000000000..dac5c7bf4 --- /dev/null +++ b/src/packaging/MacOS/openafs.launchd.plist @@ -0,0 +1,17 @@ + + + + + Label + org.openafs.filesystems.afs + ExitTimeOut + 20 + ProgramArguments + + /private/var/db/openafs/etc/launchafs.sh + + RunAtLoad + + + diff --git a/src/packaging/MacOS/openafs.launchdaemon b/src/packaging/MacOS/openafs.launchdaemon new file mode 100644 index 000000000..cbc4b997f --- /dev/null +++ b/src/packaging/MacOS/openafs.launchdaemon @@ -0,0 +1,19 @@ +#!/bin/bash +export BINDEST=/Library/OpenAFS/Tools + +function afsshutdown() +{ + logger -p local0.notice "Stopping OpenAFS" + $BINDEST/root.client/usr/vice/etc/afs.rc stop + exit 0 +} + +logger -p local0.notice "Starting OpenAFS" + +$BINDEST/root.client/usr/vice/etc/afs.rc start + +trap 'afsshutdown' TERM KILL INT QUIT HUP + +while true; do sleep 20; done +exit 0 + -- 2.39.5