diff --git a/rlgwebd-stop b/rlgwebd-stop index 7fdb2e1..d81b5f5 100755 --- a/rlgwebd-stop +++ b/rlgwebd-stop @@ -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"); - }); - sock.write("quit\n"); +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"); + }); }); diff --git a/rlgwebd.service b/rlgwebd.service index bded719..ec0ab3a 100644 --- a/rlgwebd.service +++ b/rlgwebd.service @@ -7,6 +7,7 @@ Type=simple 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