The 'Standard UNX Way' is for the program to save it's PID into a file under /var/run & remove it when it closes. When the program starts up, it first checks to see if the pidfile exits, and if so then uses the PID in the file to check for an active process. If one exists, then it exits.
Here's a simple bit of code that I use at the top of all of my scripts that I need to only have one instance. It of course has to be run as root, or you could change the permissions of the /var/run directory. All you'd have to do is to write it as a wrapper script for binary programs. The exec command is used to run a binay in the same process (i.e. with the original PID). Otherwise just include the rest of the script right after the echo. The script will clean iself up when it closes because of the trap.
HTH
#!/bin/sh
PIDFILE=/var/run/${0##*/}.pid
if [ -s $PIDFILE ]; then
ps -ax | grep "^ *$(cat $PIDFILE).*${0##*/}" >/dev/null 2>&1 && exit
fi
trap "\rm -f $PIDFILE" 0 1 2 3 15
echo $$ >| $PIDFILE
exec myprog