cmd/stepd: PID file is properly removed now
This commit is contained in:
		
							parent
							
								
									e79417ec9d
								
							
						
					
					
						commit
						04149fe218
					
				@ -7,6 +7,7 @@ import "time"
 | 
			
		||||
import "errors"
 | 
			
		||||
import "context"
 | 
			
		||||
import "net/http"
 | 
			
		||||
import "path/filepath"
 | 
			
		||||
import "git.tebibyte.media/sashakoshka/step"
 | 
			
		||||
import "git.tebibyte.media/sashakoshka/go-cli"
 | 
			
		||||
import "git.tebibyte.media/sashakoshka/step/providers"
 | 
			
		||||
@ -48,6 +49,21 @@ func main () {
 | 
			
		||||
	log.Println(`Scriptable Template Processor`)
 | 
			
		||||
	log.Println(`... initializing`)
 | 
			
		||||
 | 
			
		||||
	// manage start and end of program
 | 
			
		||||
	ctx, done := context.WithCancel(context.Background())
 | 
			
		||||
	daemon.OnSigint(done)
 | 
			
		||||
	pidFileAbs, err := filepath.Abs(flagPidFile.Value)
 | 
			
		||||
	if err != nil { log.Fatalln("XXX", err) }
 | 
			
		||||
	pidFile := daemon.PidFile(pidFileAbs)
 | 
			
		||||
	if !pidFile.Empty() {
 | 
			
		||||
		err := pidFile.Start()
 | 
			
		||||
		if err != nil { log.Println("!!! could not write pid:", err) }
 | 
			
		||||
		defer func () {
 | 
			
		||||
			err := pidFile.Close()
 | 
			
		||||
			if err != nil { log.Println("!!! could not delete pidfile:", err) }
 | 
			
		||||
		} ()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// the single argument is for the directory to serve. we actually cd
 | 
			
		||||
	// there.
 | 
			
		||||
	if len(cmd.Args) == 1 {
 | 
			
		||||
@ -61,7 +77,7 @@ func main () {
 | 
			
		||||
	// set up the environment
 | 
			
		||||
	environment := step.Environment { }
 | 
			
		||||
	environment.FuncProviders = providers.All()
 | 
			
		||||
	err := environment.Init(context.Background())
 | 
			
		||||
	err = environment.Init(context.Background())
 | 
			
		||||
	if err != nil { log.Fatal(err) }
 | 
			
		||||
 | 
			
		||||
	// set up the HTTP handler
 | 
			
		||||
@ -89,19 +105,6 @@ func main () {
 | 
			
		||||
	
 | 
			
		||||
	log.Println(`.// initialized.`)
 | 
			
		||||
	
 | 
			
		||||
	// be a daemon
 | 
			
		||||
	ctx, done := context.WithCancel(context.Background())
 | 
			
		||||
	daemon.OnSigint(done)
 | 
			
		||||
	pidfile := daemon.PidFile(flagPidFile.Value)
 | 
			
		||||
	if !pidfile.Empty() {
 | 
			
		||||
		err := pidfile.Start()
 | 
			
		||||
		if err != nil { log.Println("!!! could not write pid:", err) }
 | 
			
		||||
		defer func () {
 | 
			
		||||
			err := pidfile.Close()
 | 
			
		||||
			if err != nil { log.Println("!!! could not delete pidfile:", err) }
 | 
			
		||||
		} ()
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	log.Printf("(i) listening on %s\n", httpServer.Addr)
 | 
			
		||||
	if err := manager.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
 | 
			
		||||
		log.Fatalln("XXX", err)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user