diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded
index 2a3feedb902bd1d16f1ef74483f3ed9a21802a88..2ebc685ccb8922a6962009bf880fa5e12076f50a 100755
--- a/daemons/ganeti-noded
+++ b/daemons/ganeti-noded
@@ -615,6 +615,8 @@ def main():
   if options.fork:
     utils.Daemonize(logfile=constants.LOG_NODESERVER)
 
+  utils.WritePidFile('ganeti-noded')
+
   logger.SetupDaemon(logfile=constants.LOG_NODESERVER, debug=options.debug,
                      stderr_logging=not options.fork)
   logging.info("ganeti node daemon startup")
@@ -624,7 +626,11 @@ def main():
   else:
     server = NodeDaemonHttpServer(('', port))
 
-  server.serve_forever()
+  try:
+    server.serve_forever()
+  finally:
+    utils.RemovePidFile('ganeti-noded')
+
 
 if __name__ == '__main__':
   main()