Sockets sind die Endpunkte der Datenübertragung bei Netzwerkkommunikation (Unix-Domain-Sockets lasse ich mal außen vor) via TCP und UDP, also die Technik, die es Dir ermöglichen über Netwerke hinweg zu kommunizieren. Genauso wie Dein Browser und der Server dieses Forums es tun. Die beiden Protokolle, die dafür in zuständig sind, sind TCP (Transmission Control Protocol) und UDP (User Datagram Protocol), welche beide über Sockets kommunizieren (dafür braucht man auch die Port-Nummern). Du solltest hierbei TCP verwenden, da es eine zuverlässige Datenübertragung bereit stellt (reliable). Du würdest für das Locking einfach einen Socket an einer bestimmten Portnummmer öffnen (am besten möglichst hoch), und damit wäre schon alles getan, da immer nur ein Dienst/Programm einen Portnummer zur gleichen Zeit belegen kann, würde die zweite Instanz den Socket nicht öffnen können, und genau dieses könntest Du abfangen. Da Du ja nun schon eine Applikation hast, die auf Anfrage wartet, kannst Du darum noch ein Commando-Interface basteln, welches Kommandos von einem Client, der sich zur Anwendung verbindet entgegen nimmt.
Da ich jetzt nicht weiß, wie bewandert Du mit Netwerken, TCP/IP etc bist, kann ich hier auch noch sehr viel mehr schreiben, oder Du sagst, wo Du dann Probleme hast.
Als Python-Einstieg:
http://www.amk.ca/python/howto/sockets/
und falls Du noch Links zu TCP/IP-Themen brauchst, sag einfach Bescheid.
fs111
Pydoc-Integration in vim - Feedback willkommen: http://www.vim.org/scripts/script.php?script_id=910