package main import ( "github.com/sevlyar/go-daemon" "gitlab.com/saburly/kiviscraplib/config" "gitlab.com/saburly/kiviscraplib/structures" "gitlab.com/saburly/kiviscraplib/webserver" "gitlab.com/saburly/kiviscraplib/workerserver" "log" ) var queue chan structures.Request var end chan string // To terminate the daemon use: // kill `cat sample.pid` func main() { config.InitServerConfig() cntxt := &daemon.Context{ PidFileName: "sample.pid", PidFilePerm: 0644, LogFileName: "sample.log", LogFilePerm: 0640, WorkDir: "./", Umask: 027, Args: []string{"[kivi scraping load balancer]"}, } d, err := cntxt.Reborn() if err != nil { log.Fatal("Unable to run: ", err) } if d != nil { return } defer cntxt.Release() // todo: put queue length in env variable queue = make(chan structures.Request, 1000) end = make(chan string) go webserver.ServeHTTP(queue, end) go workerserver.ServeWorkers(queue, end) ended := <-end log.Printf("%s ended so closing the daemon\n", ended) }