Новости
=======
+Версия 0.1.6 (2019-05-??)
+-------------------------
+
+* Поместить файл ``m_librarian.lock`` в общую директорию;
+ использовать ``$UID`` в качестве суффикса имени файла
+ чтобы иметь возможность запускать ``m_librarian``
+ для разных пользователей.
+
Версия 0.1.5 (2019-02-01)
-------------------------
News
====
+Version 0.1.6 (2019-05-??)
+--------------------------
+
+* Store lock file in a shared directory; use ``$UID`` as a suffix
+ to separate lock files for different users.
+
Version 0.1.5 (2019-02-01)
--------------------------
from fcntl import flock, LOCK_EX, LOCK_UN, LOCK_NB
-from os import path, remove
+from tempfile import gettempdir
+import os
import socket
-lock_fname = path.join(
- path.dirname(path.dirname(path.dirname(__file__))),
- 'tmp', 'm_librarian.lock')
+if os.access('/var/run/lock', os.W_OK):
+ lock_dir = '/var/run/lock'
+else:
+ lock_dir = gettempdir()
+
+if hasattr(os, 'getuid'):
+ suffix = '-%d' % os.getuid()
+else:
+ suffix = ''
+
+lock_fname = os.path.join(lock_dir, 'm_librarian%s.lock' % suffix)
def get_lock(port):
lock_file = open(lock_fname, 'w')
lock_file.write('')
lock_file.close()
- remove(lock_fname)
+ os.remove(lock_fname)
def get_open_port():