From 1cd5eedba79ad555ee486db263b598b195ff2128 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 5 Jul 2018 00:31:03 +0200 Subject: [feat] daemonize helper in osx a daemon is expected --- .gitignore | 2 ++ helper/helper.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/.gitignore b/.gitignore index 641884d..38a4274 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,7 @@ *.exe *.pyc staging/* +dist/* __pycache__ helper/helper +helper/pid diff --git a/helper/helper.go b/helper/helper.go index 1e30f8f..04eafc7 100644 --- a/helper/helper.go +++ b/helper/helper.go @@ -22,6 +22,9 @@ import ( "net/http" "os" "os/exec" + "runtime" + + "github.com/sevlyar/go-daemon" ) const ( @@ -40,6 +43,36 @@ func main() { defer logger.Close() } + if runtime.GOOS == "darwin" { + daemonize() + } + serveHTTP() + +} + +func daemonize() { + cntxt := &daemon.Context{ + PidFileName: "pid", + PidFilePerm: 0644, + LogFileName: "bitmask-helper.log", + LogFilePerm: 0640, + WorkDir: "./", + Umask: 027, + Args: []string{"[bitmask-helper]"}, + } + + d, err := cntxt.Reborn() + if err != nil { + log.Fatal("Unable to run: ", err) + } + if d != nil { + return + } + defer cntxt.Release() + log.Print("bitmask-helper daemon started") +} + +func serveHTTP() { openvpn := openvpnT{nil} firewall := firewallT{} http.HandleFunc("/openvpn/start", openvpn.start) -- cgit v1.2.3