diff --git a/systemd/nlsr.service.in b/systemd/nlsr.service.in
new file mode 100644
index 0000000..9cce740
--- /dev/null
+++ b/systemd/nlsr.service.in
@@ -0,0 +1,57 @@
+# Copyright (c) 2014-2019, The University of Memphis,
+#                          Regents of the University of California,
+#                          Arizona Board of Regents.
+#
+# This file is part of NLSR (Named-data Link State Routing).
+# See AUTHORS.md for complete list of NLSR authors and contributors.
+#
+# NLSR is free software: you can redistribute it and/or modify it under the terms
+# of the GNU General Public License as published by the Free Software Foundation,
+# either version 3 of the License, or (at your option) any later version.
+#
+# NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+# PURPOSE.  See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# NLSR, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Author: Eric Newberry <enewberry@email.arizona.edu>
+# Author: Davide Pesavento <davidepesa@gmail.com>
+
+[Unit]
+Description=NDN Link State Routing Daemon
+Documentation=man:nlsr(1)
+BindsTo=nfd.service
+After=nfd.service
+
+[Service]
+Environment=HOME=%S/ndn/nlsr
+ExecStart=@BINDIR@/nlsr -f @SYSCONFDIR@/ndn/nlsr.conf
+Restart=on-failure
+RestartPreventExitStatus=2
+User=nlsr
+
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=yes
+PrivateTmp=yes
+PrivateUsers=yes
+ProtectControlGroups=yes
+ProtectHome=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=strict
+RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
+RestrictNamespaces=yes
+RestrictRealtime=yes
+# "nlsr" is the state-dir, "ndn/nlsr" is the HOME
+StateDirectory=nlsr ndn/nlsr
+SystemCallArchitectures=native
+SystemCallErrorNumber=EPERM
+SystemCallFilter=~@clock @cpu-emulation @debug @module @mount @obsolete @privileged @raw-io @reboot @setuid @swap
+
+[Install]
+WantedBy=multi-user.target
+WantedBy=nfd.service
diff --git a/wscript b/wscript
index 42635bb..52c9882 100644
--- a/wscript
+++ b/wscript
@@ -73,8 +73,6 @@
 
     conf.load('sanitizers')
 
-    conf.define('DEFAULT_CONFIG_FILE', '%s/ndn/nlsr.conf' % conf.env['SYSCONFDIR'])
-
     conf.write_config_header('config.hpp')
 
 def build(bld):
@@ -113,17 +111,23 @@
         source='tools/nlsrc.cpp',
         use='nlsr-objects')
 
-    bld.install_as('${SYSCONFDIR}/ndn/nlsr.conf.sample', 'nlsr.conf')
-
     if bld.env.WITH_TESTS:
         bld.recurse('tests')
 
+    bld.install_as('${SYSCONFDIR}/ndn/nlsr.conf.sample', 'nlsr.conf')
+
+    if Utils.unversioned_sys_platform() == 'linux':
+        bld(features='subst',
+            name='nlsr.service',
+            source='systemd/nlsr.service.in',
+            target='systemd/nlsr.service')
+
     if bld.env.SPHINX_BUILD:
         bld(features='sphinx',
             name='manpages',
             builder='man',
-            outdir='docs/manpages',
             config='docs/conf.py',
+            outdir='docs/manpages',
             source=bld.path.ant_glob('docs/manpages/**/*.rst'),
             install_path='${MANDIR}',
             VERSION=VERSION)
