github.com/ncw/rclone@v1.48.1-0.20190724201158-a35aa1360e3e/cmd/mountlib/daemon_unix.go (about)

     1  // Daemonization interface for Unix variants only
     2  
     3  // +build !windows
     4  
     5  package mountlib
     6  
     7  import (
     8  	"log"
     9  
    10  	daemon "github.com/sevlyar/go-daemon"
    11  )
    12  
    13  func startBackgroundMode() bool {
    14  	cntxt := &daemon.Context{}
    15  	d, err := cntxt.Reborn()
    16  	if err != nil {
    17  		log.Fatalln(err)
    18  	}
    19  
    20  	if d != nil {
    21  		return true
    22  	}
    23  
    24  	defer func() {
    25  		if err := cntxt.Release(); err != nil {
    26  			log.Printf("error encountered while killing daemon: %v", err)
    27  		}
    28  	}()
    29  
    30  	return false
    31  }