changeset 200:a7cc38a0168d

Actually restart RLGWebD if it crashes. Also, rlgwebd-stop will no longer crash if RLGWebD has already stopped.
author John "Elwin" Edwards
date Sat, 23 Apr 2016 18:53:08 -0400
parents 34e1bc4fd6b2
children f3843245a35e
files rlgwebd-stop rlgwebd.service
diffstat 2 files changed, 16 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/rlgwebd-stop	Mon Feb 01 21:20:12 2016 -0500
+++ b/rlgwebd-stop	Sat Apr 23 18:53:08 2016 -0400
@@ -1,12 +1,22 @@
 #!/usr/bin/env node
 
 var net = require('net');
+var domain = require('domain');
 var sockpath = "/var/run/rlgwebd.sock";
 
-var sock = net.connect(sockpath, function () {
-  sock.on('close', function () {
-    if (process.argv[2] == "debug")
-      console.log("Control socket closed");
+var dom = domain.create();
+
+dom.on('error', function (err) {
+  console.log("Cannot connect to " + sockpath + ", rlgwebd already stopped.");
+  process.exit(0);
+});
+
+dom.run(function () {
+  var sock = net.connect(sockpath, function () {
+    sock.on('close', function () {
+      if (process.argv[2] == "debug")
+        console.log("Control socket closed");
+    });
+    sock.write("quit\n");
   });
-  sock.write("quit\n");
 });
--- a/rlgwebd.service	Mon Feb 01 21:20:12 2016 -0500
+++ b/rlgwebd.service	Sat Apr 23 18:53:08 2016 -0400
@@ -7,6 +7,7 @@
 Environment=NODE_PATH=/usr/lib/node_modules
 ExecStart=/usr/local/bin/rlgwebd
 ExecStop=/usr/local/bin/rlgwebd-stop
+Restart=on-failure
 
 [Install]
 WantedBy=multi-user.target