Port to new lockfile API
Add a pair of systemd service files which
admins can choose to use on systemd instances.
Change-Id: I993c26361c57ee50c8c3846525598ffef2b05932
diff --git a/.gitreview b/.gitreview
index 01c6c00..c35ef9c 100644
--- a/.gitreview
+++ b/.gitreview
@@ -1,4 +1,4 @@
[gerrit]
-host=git.linaro.org
+host=review.linaro.org
port=29418
project=lava/lavapdu
diff --git a/MANIFEST.in b/MANIFEST.in
index a59b72f..a782c1c 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,4 +1,6 @@
include etc/lavapdu/lavapdu.conf
include etc/lavapdu-runner.init
include etc/lavapdu-listen.init
+include etc/lavapdu-runner.service
+include etc/lavapdu-listen.service
include etc/lavapdulogrotate
diff --git a/etc/lavapdu-listen.service b/etc/lavapdu-listen.service
new file mode 100644
index 0000000..5ad4e7b
--- /dev/null
+++ b/etc/lavapdu-listen.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=TCP Listening daemon to accept PDU requests
+After=postgresql.service
+
+[Service]
+ExecStart=/usr/sbin/lavapdu-listen
+Type=forking
+PIDFile=/var/run/lavapdu-listen.pid
+
+[Install]
+WantedBy=network.target
diff --git a/etc/lavapdu-runner.service b/etc/lavapdu-runner.service
new file mode 100644
index 0000000..9fdc7ad
--- /dev/null
+++ b/etc/lavapdu-runner.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Runner daemon to process PDU requests
+After=postgresql.service
+
+[Service]
+ExecStart=/usr/sbin/lavapdu-runner
+Type=forking
+PIDFile=/var/run/lavapdu-runner.pid
+
+[Install]
+WantedBy=network.target
diff --git a/lavapdu-listen b/lavapdu-listen
index ec5b00b..66e798a 100755
--- a/lavapdu-listen
+++ b/lavapdu-listen
@@ -26,7 +26,10 @@
from logging.handlers import WatchedFileHandler
import daemon
-import daemon.pidlockfile
+try:
+ import daemon.pidlockfile as pidlockfile
+except ImportError:
+ from lockfile import pidlockfile
from lavapdu.socketserver import ListenerServer
@@ -92,11 +95,12 @@
print("Fatal error creating client_logger: " + str(client_logger))
sys.exit(os.EX_OSERR)
# noinspection PyArgumentList
- lockfile = daemon.pidlockfile.PIDLockFile(pidfile)
+ lockfile = pidlockfile.PIDLockFile(pidfile)
if lockfile.is_locked():
logging.error("PIDFile %s already locked" % pidfile)
sys.exit(os.EX_OSERR)
context = daemon.DaemonContext(
+ detach_process=True,
working_directory=os.getcwd(),
pidfile=lockfile,
files_preserve=[watched_file_handler.stream],
@@ -105,4 +109,4 @@
with context:
logging.info("Running LAVA PDU Listener %s %s %d."
% (logfile, settings['hostname'], settings['port']))
- ListenerServer(settings).start()
\ No newline at end of file
+ ListenerServer(settings).start()
diff --git a/lavapdu-runner b/lavapdu-runner
index b1730ff..ea5026b 100755
--- a/lavapdu-runner
+++ b/lavapdu-runner
@@ -26,7 +26,10 @@
from logging.handlers import WatchedFileHandler
import daemon
-import daemon.pidlockfile
+try:
+ import daemon.pidlockfile as pidlockfile
+except ImportError:
+ from lockfile import pidlockfile
from lavapdu.pdurunner import PDURunner
@@ -93,11 +96,12 @@
print("Fatal error creating client_logger: " + str(client_logger))
sys.exit(os.EX_OSERR)
# noinspection PyArgumentList
- lockfile = daemon.pidlockfile.PIDLockFile(pidfile)
+ lockfile = pidlockfile.PIDLockFile(pidfile)
if lockfile.is_locked():
logging.error("PIDFile %s already locked" % pidfile)
sys.exit(os.EX_OSERR)
context = daemon.DaemonContext(
+ detach_process=True,
working_directory=os.getcwd(),
pidfile=lockfile,
files_preserve=[watched_file_handler.stream],
diff --git a/setup.py b/setup.py
index b1b1b26..dcf8a48 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@
setup(
name='lavapdu',
- version="0.0.4",
+ version="0.0.5",
author="Matthew Hart",
author_email="matthew.hart@linaro.org",
license="GPL2+",
@@ -38,6 +38,10 @@
data_files=[
("/etc/init.d/", ["etc/lavapdu-runner.init"]),
("/etc/init.d/", ["etc/lavapdu-listen.init"]),
+ ("/usr/share/lavapdu/", [
+ "etc/lavapdu-listen.service",
+ "etc/lavapdu-runner.service"
+ ]),
("/etc/lavapdu/", ["etc/lavapdu/lavapdu.conf"]),
("/etc/logrotate.d/", ["etc/lavapdulogrotate"]),
],