diff options
author | Kali Kaneko <kali@leap.se> | 2018-07-05 00:31:03 +0200 |
---|---|---|
committer | Kali Kaneko (leap communications) <kali@leap.se> | 2018-07-07 04:56:29 +0200 |
commit | 1cd5eedba79ad555ee486db263b598b195ff2128 (patch) | |
tree | bfa9cf61f88dfc48f9eb31dbe1e1e752d562d326 /helper | |
parent | 7d54e7dfd073c5f8a90a7055fd99d5dccb5277b6 (diff) |
[feat] daemonize helper in osx
a daemon is expected
Diffstat (limited to 'helper')
-rw-r--r-- | helper/helper.go | 33 |
1 files changed, 33 insertions, 0 deletions
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) |