2021-06-08 20:45:26 +08:00
|
|
|
|
// AnyLink 是一个企业级远程办公vpn软件,可以支持多人同时在线使用。
|
|
|
|
|
|
2023-04-26 22:17:10 +08:00
|
|
|
|
//go:build !windows
|
2021-07-05 18:23:27 +08:00
|
|
|
|
// +build !windows
|
|
|
|
|
|
2021-06-08 20:45:26 +08:00
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
2021-07-05 18:23:27 +08:00
|
|
|
|
"embed"
|
2021-06-08 20:45:26 +08:00
|
|
|
|
"os"
|
|
|
|
|
"os/signal"
|
|
|
|
|
"syscall"
|
|
|
|
|
|
2021-07-05 18:23:27 +08:00
|
|
|
|
"github.com/bjdgyc/anylink/admin"
|
2021-06-08 20:45:26 +08:00
|
|
|
|
"github.com/bjdgyc/anylink/base"
|
|
|
|
|
"github.com/bjdgyc/anylink/handler"
|
|
|
|
|
)
|
|
|
|
|
|
2021-07-05 18:23:27 +08:00
|
|
|
|
//go:embed ui
|
|
|
|
|
var uiData embed.FS
|
|
|
|
|
|
2021-06-08 20:45:26 +08:00
|
|
|
|
// 程序版本
|
2021-07-05 18:23:27 +08:00
|
|
|
|
var CommitId string
|
2021-06-08 20:45:26 +08:00
|
|
|
|
|
|
|
|
|
func main() {
|
2021-07-05 18:23:27 +08:00
|
|
|
|
base.CommitId = CommitId
|
|
|
|
|
admin.UiData = uiData
|
2021-06-08 20:45:26 +08:00
|
|
|
|
|
|
|
|
|
base.Start()
|
|
|
|
|
handler.Start()
|
|
|
|
|
signalWatch()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func signalWatch() {
|
|
|
|
|
base.Info("Server pid: ", os.Getpid())
|
|
|
|
|
|
|
|
|
|
sigs := make(chan os.Signal, 1)
|
|
|
|
|
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM, syscall.SIGALRM)
|
|
|
|
|
for {
|
|
|
|
|
sig := <-sigs
|
|
|
|
|
base.Info("Get signal:", sig)
|
|
|
|
|
switch sig {
|
|
|
|
|
case syscall.SIGUSR2:
|
|
|
|
|
// reload
|
|
|
|
|
base.Info("Reload")
|
|
|
|
|
default:
|
|
|
|
|
// stop
|
|
|
|
|
base.Info("Stop")
|
|
|
|
|
handler.Stop()
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|