Mac launchd item and launcher script, uninstaller work.

This commit is contained in:
Adam Ierymenko 2013-12-13 16:15:42 -08:00
parent 8cc9692cd9
commit 50ef47cf0a
4 changed files with 55 additions and 5 deletions

View File

@ -1,2 +0,0 @@
#!/bin/bash

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.zerotier.one</string>
<key>UserName</key>
<string>root</string>
<key>ProgramArguments</key>
<array>
<string>/Library/Application Support/ZeroTier/One/launch.sh</string>
</array>
<key>WorkingDirectory</key>
<string>/Library/Application Support/ZeroTier/One</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>KeepAlive</key>
<true/>
</dict>
</plist>

24
ext/installfiles/mac/launch.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash
zthome="/Library/Application Support/ZeroTier/One"
ztapp="/Applications/ZeroTier One.app"
export PATH="/bin:/usr/bin:/sbin:/usr/sbin:$zthome"
# Uninstall if the .app has been thrown away
if [ ! -d "$ztapp" ]; then
if [ -e "$zthome/uninstall.sh" ]; then
exec "$zthome/uninstall.sh"
exit
fi
fi
# Create the app deletion notification symlink if it does
# not already exist.
if [ ! -L "$zthome/shutdownIfUnreadable" ]; then
rm -f "$zthome/shutdownIfUnreadable"
ln -sf "$ztapp/Contents/Info.plist" "$zthome/shutdownIfUnreadable"
fi
# Launch ZeroTier One (not as daemon... launchd monitors it)
exec zerotier-one

View File

@ -2,6 +2,9 @@
export PATH=/bin:/usr/bin:/sbin:/usr/sbin
ztpath="/Library/Application Support/ZeroTier/One"
ztapp="/Applications/ZeroTier One.app"
if [ "$UID" -ne 0 ]; then
echo "Must be run as root; try: sudo $0"
exit 1
@ -13,19 +16,22 @@ echo "This will uninstall ZeroTier One, hit CTRL+C to abort."
echo "Waiting 5 seconds..."
sleep 5
ztpath="/Library/Application Support/ZeroTier/One"
echo "Unloading and removing LaunchDaemons item..."
launchctl unload /Library/LaunchDaemons/com.zerotier.one.plist
rm -f /Library/LaunchDaemons/com.zerotier.one.plist
echo "Killing any running zerotier-one service..."
killall -TERM zerotier-one >>/dev/null 2>&1
sleep 3
killall -KILL zerotier-one >>/dev/null 2>&1
sleep 1
echo "Unloading kernel extension..."
kextunload "$ztpath/tap.kext"
echo "Erasing binary and support files..."
echo "Erasing UI app, binary, and support files..."
cd $ztpath
rm -rfv zerotier-one *.persist authtoken.secret identity.public *.log *.pid *.kext
rm -rfv "$ztapp" zerotier-one *.persist authtoken.secret identity.public *.log *.pid *.kext *.sh
echo "Done."
echo