PDA

Visualizza la versione completa : Linux Py2.7 Impedire due processi uguali


zacca94
10-05-2017, 08:59
Lasciando il pc accesso 24h sy 24h a volte mi capita di aprire un mio programma due volte, come faccio ad impedirlo?
Attualmente utilizzo questo:


def alreadyPsExist(fileName):
pids = [pid for pid in os.listdir("/proc") if pid.isdigit()]
find = 0
for pid in pids:
try:
if fileName in (open(os.path.join("/proc", pid, "cmdline"), "rb").read()).strip():
if find >= 2:
return True
find += 1
except IOError: # proc has already terminated
continue

return False

if libs.Common.alreadyPsExist(__file__):
ErrorBox("The software is already running.")
sys.exit(0)


E diciamo pure che il suo lavoro lo fa, ma... se un giorno voglio crearmi uno script con un nome simile ovviamente non potrņ...

clasku
10-05-2017, 18:49
guarda questo modulo: http://pythonhosted.org/tendo/
qui trovi un esempio di implementazione: http://stackoverflow.com/a/1265445

zacca94
10-05-2017, 23:07
Grazie, risolto

Loading