« Return to Thread: run once and then vaporize

run once and then vaporize

by Blake Garner :: Rate this Message:

Reply to Author | View in Thread

I'm hoping that an elegant solution exists for launchd to kick off a
script on boot as root and then unload and remove itself. I understand
that login hooks and startup items may be simpler but I would prefer
to use a launchd plist as it fits better with our automation system.

This is what I have right now..

<?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>runonce</string>
        <key>ProgramArguments</key>
        <array>
                <string>/Library/Scripts/runonce.sh</string>
                <string>;</string>
                <string>/bin/launchctl</string>
                <string>unload</string>
                <string>-w</string>
                <string>/Library/LaunchDaemons/runonce.plist</string>
                <string>;</string>
                <string>/usr/bin/rm</string>
                <string>/Library/LaunchDaemons/runonce.plist</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>

My test script currently just echo's some text into system.log and
exits. The script runs but the launchd item fails to unload or remove
itself. Ideally I would like to keep the removal function in the
launchd item.

Suggestions and links to similar examples are welcome.

Thanks,
Blake
_______________________________________________
launchd-dev mailing list
launchd-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/launchd-dev

 « Return to Thread: run once and then vaporize