mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 07:40:56 +08:00 
			
		
		
		
	使用Sock管理进程启停
This commit is contained in:
		@@ -5,15 +5,12 @@ import (
 | 
			
		||||
	"github.com/TeaOSLab/EdgeNode/internal/apps"
 | 
			
		||||
	teaconst "github.com/TeaOSLab/EdgeNode/internal/const"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeNode/internal/nodes"
 | 
			
		||||
	"github.com/iwind/TeaGo/Tea"
 | 
			
		||||
	_ "github.com/iwind/TeaGo/bootstrap"
 | 
			
		||||
	"github.com/iwind/TeaGo/logs"
 | 
			
		||||
	"github.com/iwind/TeaGo/types"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"github.com/iwind/gosock/pkg/gosock"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	_ "net/http/pprof"
 | 
			
		||||
	"os"
 | 
			
		||||
	"syscall"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
@@ -40,25 +37,13 @@ func main() {
 | 
			
		||||
		fmt.Println("done")
 | 
			
		||||
	})
 | 
			
		||||
	app.On("quit", func() {
 | 
			
		||||
		pidFile := Tea.Root + "/bin/pid"
 | 
			
		||||
		data, err := ioutil.ReadFile(pidFile)
 | 
			
		||||
		var sock = gosock.NewTmpSock(teaconst.ProcessName)
 | 
			
		||||
		_, err := sock.Send(&gosock.Command{Code: "quit"})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			fmt.Println("[ERROR]quit failed: " + err.Error())
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		pid := types.Int(string(data))
 | 
			
		||||
		if pid == 0 {
 | 
			
		||||
			fmt.Println("[ERROR]quit failed: pid=0")
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		process, err := os.FindProcess(pid)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		if process != nil {
 | 
			
		||||
			_ = process.Signal(syscall.SIGQUIT)
 | 
			
		||||
		}
 | 
			
		||||
		fmt.Println("done")
 | 
			
		||||
	})
 | 
			
		||||
	app.On("pprof", func() {
 | 
			
		||||
		// TODO 自己指定端口
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user