keep dspam alive?

Terry Barnum terry at dop.com
Tue Aug 6 11:23:10 PDT 2013


The macports dspam port doesn't appear to create a launchd plist or daemondo wrapper. How would one create a daemondo .plist to restart dspam when it crashes?

Right now I have this .plist and wrapper but they don't restart dspam when it crashes. Thanks for any guidance.

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
<plist version='1.0'>
<dict>
<key>Label</key><string>org.macports.dspam</string>
<key>ProgramArguments</key>
<array>
        <string>/opt/local/bin/daemondo</string>
        <string>--label=dspam</string>
        <string>--start-cmd</string>
        <string>/opt/local/etc/LaunchDaemons/org.macports.dspam/dspam.wrapper</string>
        <string>start</string>
        <string>;</string>
        <string>--stop-cmd</string>
        <string>/opt/local/etc/LaunchDaemons/org.macports.dspam/dspam.wrapper</string>
        <string>stop</string>
        <string>;</string>
        <string>--restart-cmd</string>
        <string>/opt/local/etc/LaunchDaemons/org.macports.dspam/dspam.wrapper</string>
        <string>restart</string>
        <string>;</string>
</array>
<key>KeepAlive</key><true/>
</dict>
</plist>

Here's the dspam.wrapper:

#!/bin/sh
#
# MacPorts generated daemondo support script
#

#
# Init
#
prefix=/opt/local

#
# Start
#
Start()
{
        /opt/local/bin/dspam --daemon
}

#
# Stop
#
Stop()
{
        kill `cat /opt/local/var/run/dspam.pid`
}

#
# Restart
#
Restart()
{
        Stop
        Start
}

#
# Run
#
Run()
{
case $1 in
  start  ) Start   ;;
  stop   ) Stop    ;;
  restart) Restart ;;
  *      ) echo "$0: unknown argument: $1";;
esac
}

#
# Run a phase based on the selector
#
Run $1


Terry Barnum
digital OutPost
http://www.dop.com



More information about the macports-users mailing list