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"]),
     ],