Skip to content

Instantly share code, notes, and snippets.

@Andrewpk
Last active April 16, 2022 03:01
Show Gist options
  • Star 50 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save Andrewpk/7558715 to your computer and use it in GitHub Desktop.
Save Andrewpk/7558715 to your computer and use it in GitHub Desktop.
wtf juniper. Anyone else find it irritating that junos pulse services and pulse tray must always running in OS X regardless of whether or not you're currently connected? Yeah, me too. I added the following as aliases to my shell to fix this problem. Be sure to change your /Library/LaunchAgents/net.juniper.pulsetray.plist file to reflect the `Kee…
<?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>net.juniper.pulsetray</string>
<key>LimitLoadToSessionType</key>
<array>
<string>Aqua</string>
</array>
<key>ProgramArguments</key>
<array>
<string>/Applications/Junos Pulse.app/Contents/Plugins/JamUI/PulseTray.app/Contents/MacOS/PulseTray</string>
</array>
<key>KeepAlive</key>
<false/>
<key>Disabled</key>
<false/>
</dict>
</plist>
#################################################################################
# start and stop the vpn from the command line from now on with these two commands
# or rename the aliases as you see fit.
#################################################################################
alias startvpn="sudo launchctl load -w /Library/LaunchDaemons/net.juniper.AccessService.plist; open -a '/Applications/Junos Pulse.app/Contents/Plugins/JamUI/PulseTray.app/Contents/MacOS/PulseTray'"
alias quitvpn="osascript -e 'tell application \"PulseTray.app\" to quit';sudo launchctl unload -w /Library/LaunchDaemons/net.juniper.AccessService.plist"
@herikwebb
Copy link

This also really annoyed me. Very basic functionality that should've been included from the start. Thanks for this.

@mevanlc
Copy link

mevanlc commented Apr 11, 2014

My IT department just pushed out an upgrade of Pulse, and the original post no longer works for me. However, this does:

startvpn() {
        sudo launchctl load -w /Library/LaunchDaemons/net.juniper.AccessService.plist
        launchctl load -w /Library/LaunchAgents/net.juniper.pulsetray.plist
}
quitvpn() {
        launchctl unload -w /Library/LaunchAgents/net.juniper.pulsetray.plist
        sudo launchctl unload -w /Library/LaunchDaemons/net.juniper.AccessService.plist
        osascript -e 'tell application "Junos Pulse" to quit'
}

@cizko
Copy link

cizko commented Dec 22, 2014

I packed mevanics updated versions into two stand alone automator actions. Now I can click and run them from my dock. If anyone is interested, here is a download: http://www.assetive.com/downloads/PulseControl.zip
I also provided my untouched net.juniper.pulsetray.plist just for reference, since I did not need to change it at all.

@bombastian
Copy link

@cizko, thanks, works like a charm! Do you also have a similarly slick solution to the "enter admin password"-dialogue every time one runs start or stop?

@joedaniels29
Copy link

I was so pissed when I couldn't get this thing to stop. Thank A bunch for this script its a wonder!!

@caillou
Copy link

caillou commented Apr 16, 2018

The latest update to Pulse Secure has moved files around. Here is the updated version for @mevanlc functions:

startvpn() {
    sudo launchctl load -w /Library/LaunchDaemons/net.pulsesecure.AccessService.plist
    launchctl load -w /Library/LaunchAgents/net.pulsesecure.pulsetray.plist
}
quitvpn() {
    launchctl unload -w /Library/LaunchAgents/net.pulsesecure.pulsetray.plist
    sudo launchctl unload -w /Library/LaunchDaemons/net.pulsesecure.AccessService.plist
    osascript -e 'tell application "Pulse Secure" to quit'
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment