Files
oneterm/backend/main.go
2024-09-03 14:26:11 +08:00

53 lines
874 B
Go

package main
import (
"errors"
"os"
"os/signal"
"syscall"
"github.com/oklog/run"
"github.com/veops/oneterm/api"
"github.com/veops/oneterm/logger"
"github.com/veops/oneterm/schedule"
"github.com/veops/oneterm/sshsrv"
"go.uber.org/zap"
)
func main() {
rg := run.Group{}
{
term := make(chan os.Signal, 1)
signal.Notify(term, os.Interrupt, syscall.SIGTERM)
rg.Add(func() error {
<-term
return errors.New("terminated")
}, func(err error) {})
}
{
rg.Add(func() error {
return api.RunApi()
}, func(err error) {
api.StopApi()
})
}
{
rg.Add(func() error {
return sshsrv.RunSsh()
}, func(err error) {
sshsrv.StopSsh()
})
}
{
rg.Add(func() error {
return schedule.RunConnectable()
}, func(err error) {
schedule.StopConnectable()
})
}
if err := rg.Run(); err != nil {
logger.L().Fatal("", zap.Error(err))
}
}