Mac OSX Launch Gateway on Startup

I’ve been looking through the various forum posts and help articles but I can’t seem to find an answer. A new project that I am working on requires installing the Ignition gateway on a Mac. I was able to run through the installation process without issue using the dmg installer. However, I cannot get the Ignition gateway to start when the Mac powers on.

I was able to create an automator app that runs on user login, but it’s not quite what I’m looking for. If the Mac loses power in the middle of the night, I would like it so that the Gateway starts on it’s own when power comes back on without someone having to login. I’d rather not enable auto login since that leaves it open to malicious actors. I’ve been playing around with trying to create a custom LaunchDaemon to trigger on startup but have been running into a lot of road blocks (mainly my lack of experience with configuring plist files).

If this is the only/best option I have, I’ll keep heading down this path of getting the daemon working but I’m hoping someone might be able to point me to something simpler (or have some pointers on getting the launch daemon working).

Ignition 7.9.10 b2018112821
Mac OSX 10.14.2

You are correct in needing to use a Launch Daemon.

Since you want it to run without a user logging in you will need to set it up as the root user.

This will walk through how to load the plist file and get it running on startup: https://medium.com/@fahimhossain_16989/adding-startup-scripts-to-launch-daemon-on-mac-os-x-sierra-10-12-6-7e0318c74de1

Then you can use this file for the plist file assuming you installed in the standard ignition location. Once you have this loaded, reboot the machine and you should be in business. (I named the file com.startup.plist)

<?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>Disabled</key>
    <true/>
    <key>Label</key>
    <string>com.startup</string>
    <key>ProgramArguments</key>
    <array>
	    <string>/usr/local/ignition/ignition.sh</string>
	    <string>start</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
2 Likes

Worked like a charm, thank you!