This example shows how to stop yourself from running multiple copies of a program (in this case, pine).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/bin/env/python
import os
# figure out what user I am:
myusr = os.popen("/usr/bin/whoami").read().strip()
# see if pine is already running for me:
pines = os.popen("/usr/bin/pgrep -u %s pine" % myusr).read().split()
# but *this* script is called pine, so take it out of the list:
mypid = str(os.getpid())
pines.remove(mypid)
if pines:
print "pine is already running."
else:
# replace this process with the real thing:
os.execv("/usr/bin/pine", [""])
|
I tend to have multiple terminals open, and I'm always starting pine when I already have a copy open somewhere else. Running a second instance locks both instances up for a few seconds, and it's annoying, so I wrote this script.
Just call this script "pine" and put it on your path before the "real" pine. (You can set your path in your ~/.bash_profile file, or the equivalent for whatever shell you prefer)