This article is intended to fulfill the need to run a script upon login using Addigy's Custom Software. For information on creating Custom Software check out our Creating Custom Software KB article.
To set up a script to run at login, you will need to create either a Launch Daemon or a Launch Agent. A Launch Daemon will run the script as root, while a Launch Agent will run as the logged-in user. This is determined on which folder the settings defined by the property list, also known as a .plist, is copied to:
/Library/LaunchDaemon = run as root /Library/LaunchAgents = run as logged-in user |
Your Custom Software will need two files:
1. The script that you want to run at login
2. The previously mentioned .plist
To create the .plist copy this text and save it as a .plist.
Note: Make sure the Program key's string, has the correct path to the script, in this case take the directory of the Custom Software /Library/Addigy/packages/MapNetworkDriveLogin (1.0.0) and then add the .sh file to the end, which in the case of this as seen at the bottom of the article, would be mapnetdrive.sh.
<?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.example.app</string> <key>Program</key> <string>/Library/Addigy/Name_of_Script.sh</string> <key>RunAtLoad</key> <true/> </dict> </plist> |
For the Installation Script of the Custom Software, you will need to change the permission of the script, move the files to either /Library/LaunchDaemon or /Library/LaunchAgents, and then finally load the plist.
This is what the Installation Script will look like.
Note: Replace Name_of_Script, Name_of_Property_List.plist, and which folder to move the .plist to:
This is what the finished Custom Software will look like. In this example I set up a Launch Agent that will mount a network drive to the device:
Additional: The mapnetdrive.sh contains this code:
#!/bin/bash
open "smb://username:password@Server/path/to/folder"
|