From 2b66d522a4d52beed6c3ddc9d999efbbf44e7509 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 Change-Id: I4c113d232186eaa06bd6793a5fd151053bf91efe Reviewed-on: http://gerrit.openafs.org/564 Tested-by: Claudio Bisegni Tested-by: Derrick Brashear Reviewed-by: Claudio Bisegni Reviewed-by: Derrick Brashear Reviewed-on: http://gerrit.openafs.org/966 --- src/packaging/MacOS/OpenAFS.post_install | 4 ++++ src/packaging/MacOS/OpenAFS.pre_upgrade | 7 +++++++ src/packaging/MacOS/buildpkg.sh.in | 16 ++++++++-------- src/packaging/MacOS/openafs.launchd.plist | 17 +++++++++++++++++ src/packaging/MacOS/openafs.launchdaemon | 19 +++++++++++++++++++ 5 files changed, 55 insertions(+), 8 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 e10dbb132..72047bd08 100644 --- a/src/packaging/MacOS/OpenAFS.post_install +++ b/src/packaging/MacOS/OpenAFS.post_install @@ -121,3 +121,7 @@ elif [ -e config/afssettings ]; then # turn off execution of afssettings chmod a-x config/afssettings fi + +#here we should run tools which configure the client, and then if it's enabled: +#/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 ae71e03a5..aa10c37e5 100644 --- a/src/packaging/MacOS/OpenAFS.pre_upgrade +++ b/src/packaging/MacOS/OpenAFS.pre_upgrade @@ -23,3 +23,10 @@ if [ -f config/afsd.options -a -f config/afsd.options.sample ]; then fi 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 279f384f9..4ea5f6d4c 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