本文整理汇总了Golang中github.com/kardianos/service.New函数的典型用法代码示例。如果您正苦于以下问题:Golang New函数的具体用法?Golang New怎么用?Golang New使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了New函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
if runtime.GOOS == "windows" {
svcConfig = &service.Config{
Name: "telegraf",
DisplayName: "Telegraf Data Collector Service",
Description: "Collects data using a series of plugins and publishes it to" +
"another series of plugins.",
Arguments: []string{"-config", "C:\\Program Files\\Telegraf\\telegraf.conf"},
}
prg := &program{}
s, err := service.New(prg, svcConfig)
if err != nil {
log.Fatal(err)
}
logger, err = s.Logger(nil)
if err != nil {
log.Fatal(err)
}
err = s.Run()
if err != nil {
logger.Error(err)
}
} else {
stop = make(chan struct{})
reloadLoop(stop, nil)
}
}
示例2: TestInstallRunRestartStopRemove
func TestInstallRunRestartStopRemove(t *testing.T) {
p := &program{}
s, err := service.New(p, sc)
if err != nil {
t.Fatal(err)
}
_ = s.Uninstall()
err = s.Install()
if err != nil {
t.Fatal("install", err)
}
defer s.Uninstall()
err = s.Start()
if err != nil {
t.Fatal("start", err)
}
err = s.Restart()
if err != nil {
t.Fatal("restart", err)
}
err = s.Stop()
if err != nil {
t.Fatal("stop", err)
}
err = s.Uninstall()
if err != nil {
t.Fatal("uninstall", err)
}
}
示例3: DoInit
func DoInit(cfg WebServerConfiger,
serviceConfig *service.Config,
middlewareFactory func(*httpway.Router) map[string]*httpway.Router,
routeFactory map[string]func(*httpway.Router),
bootstrap func(server *httpway.Server, logger *golog.Logger, router *httpway.Router) error) (service.Service, error) {
p := &program{
middlewareFactory: middlewareFactory,
routeFactory: routeFactory,
bootstrap: bootstrap,
}
s, err := service.New(p, serviceConfig)
if err != nil {
log.Fatal(err)
}
logger, err := s.Logger(nil)
if err != nil {
log.Fatal(err)
}
p.systemLog = logger
if err := initConfig(cfg); err != nil {
p.systemLog.Error(err)
return nil, err
}
if err := p.initLogger(); err != nil {
p.systemLog.Error(err)
return nil, err
}
return s, nil
}
示例4: main
func main() {
svcConfig := &service.Config{
Name: "GoServiceExampleStopPause",
DisplayName: "Go Service Example: Stop Pause",
Description: "This is an example Go service that pauses on stop.",
}
prg := &program{}
s, err := service.New(prg, svcConfig)
if err != nil {
log.Fatal(err)
}
if len(os.Args) > 1 {
err = service.Control(s, os.Args[1])
if err != nil {
log.Fatal(err)
}
return
}
logger, err = s.Logger(nil)
if err != nil {
log.Fatal(err)
}
err = s.Run()
if err != nil {
logger.Error(err)
}
}
示例5: main
func main() {
controlFlag := flag.String("control", "", "{install|uninstall|start|stop}")
flag.Parse()
conf := &service.Config{
Name: "shuthelper_server",
DisplayName: "shuthelper server service",
Description: "remote host shutdown helper service ...",
}
p := &program{}
s, err := service.New(p, conf)
if err != nil {
panic(err)
}
logger, err = s.Logger(nil)
if err != nil {
panic(err)
}
if !strings.EqualFold(*controlFlag, "") {
err = service.Control(s, *controlFlag)
if err != nil {
panic(err)
}
return
}
s.Run()
}
示例6: main
func main() {
svcConfig := &service.Config{
Name: "KnowledgeDB",
DisplayName: "Knowledge DB",
Description: "Knowledge DB - Webserver",
}
prg := &program{}
s, err := service.New(prg, svcConfig)
if err != nil {
log.Fatal(err)
}
logger, err := s.Logger(nil)
if err != nil {
log.Fatal(err)
}
log.SetServiceLogger(logger)
if len(os.Args) == 2 {
command := os.Args[1]
err := service.Control(s, command)
if err != nil {
log.Fatalf("%v\n\nValidOperations: %v", err, service.ControlAction)
}
return
}
err = s.Run()
if err != nil {
log.Error(err)
}
}
示例7: main
func main() {
k, err := registry.OpenKey(registry.LOCAL_MACHINE, "SOFTWARE\\INT", registry.QUERY_VALUE)
checkErr(err)
defer k.Close()
Path, _, err = k.GetStringValue("WorkingDirectory")
checkErr(err)
fmt.Printf("%s\n", Path)
svcConfig := &service.Config{
Name: "SphinxMailer",
DisplayName: "SphinxMailer",
Description: "Отправляет письма при обнаружении событий в СКУД Сфинкс.",
}
prg := &program{}
s, err := service.New(prg, svcConfig)
if err != nil {
log.Fatal(err)
}
logger, err = s.Logger(nil)
if err != nil {
log.Fatal(err)
}
err = s.Run()
if err != nil {
logger.Error(err)
}
}
示例8: main
func main() {
svcConfig := &service.Config{
Name: "ArduinoCreateBridge",
DisplayName: "Arduino Create Bridge",
Description: "A bridge that allows Arduino Create to operate on the boards connected to the computer",
}
prg := &program{}
s, err := service.New(prg, svcConfig)
if err != nil {
log.Fatal(err)
}
if len(os.Args) > 1 {
err = service.Control(s, os.Args[1])
if err != nil {
log.Fatal(err)
}
return
}
logger, err = s.Logger(nil)
if err != nil {
log.Fatal(err)
}
err = s.Install()
if err != nil {
logger.Error(err)
}
err = s.Run()
if err != nil {
logger.Error(err)
}
}
示例9: main
func main() {
settings.Init()
flag.Parse()
if len(os.Args) == 1 {
flag.Usage()
return
}
if flag.Lookup("run") == nil && flag.Lookup("svcctl") == nil && flag.Lookup("help") == nil && flag.Lookup("console") == nil {
flag.Usage()
return
}
if *help {
flag.Usage()
return
}
LogFile, err := os.OpenFile(settings.Log.File, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0777)
if err != nil {
fmt.Println(err)
return
}
p := &Program{
Logger: log.New(LogFile, "[filesync]", log.Ldefault|log.Lmicroseconds),
}
s, err := svc.New(p, &svc.Config{
Name: "Filesync",
DisplayName: "FileSync Service",
Description: "Filesync is a simple tool to sync files between multiple directory pairs.",
Arguments: []string{"-run"},
})
if err != nil {
fmt.Println(err.Error())
return
}
if *run {
if *console {
p.Logger = log.New(os.Stdout, "[filesync]", log.Ldefault|log.Lmicroseconds)
p.run()
return
}
err := s.Run()
fmt.Println("run with error: ", err)
return
}
Actions := strings.Split(*controls, ",")
for _, action := range Actions {
err := svc.Control(s, action)
fmt.Println(err)
}
}
示例10: main
func main() {
svcFlag := flag.String("service", "", "Control the system service.")
flag.Parse()
configPath, err := getConfigPath()
if err != nil {
log.Fatal(err)
}
config, err := getConfig(configPath)
if err != nil {
log.Fatal(err)
}
svcConfig := &service.Config{
Name: config.Name,
DisplayName: config.DisplayName,
Description: config.Description,
}
prg := &program{
exit: make(chan struct{}),
Config: config,
}
s, err := service.New(prg, svcConfig)
if err != nil {
log.Fatal(err)
}
prg.service = s
errs := make(chan error, 5)
logger, err = s.Logger(errs)
if err != nil {
log.Fatal(err)
}
go func() {
for {
err := <-errs
if err != nil {
log.Print(err)
}
}
}()
if len(*svcFlag) != 0 {
err := service.Control(s, *svcFlag)
if err != nil {
log.Printf("Valid actions: %q\n", service.ControlAction)
log.Fatal(err)
}
return
}
err = s.Run()
if err != nil {
logger.Error(err)
}
}
示例11: main
// Service setup.
// Define service config.
// Create the service.
// Setup the logger.
// Handle service controls (optional).
// Run the service.
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
flag.Usage = usage
svcFlag = flag.String("service", "", fmt.Sprintf("Control the system service. Valid actions: %q\n", service.ControlAction))
portFlag = flag.Int("port", 17000, " Port number")
flag.Parse()
if *portFlag == 0 {
usage()
os.Exit(2)
}
svcConfig := &service.Config{
Name: serviceName(),
DisplayName: serviceDisplayName(),
Description: serviceDisplayName(),
Arguments: []string{fmt.Sprintf("-port=%d", *portFlag)},
}
prg := &program{}
s, err := service.New(prg, svcConfig)
if err != nil {
log.Fatal(err)
}
errs := make(chan error, 5)
func() {
loggerLock.Lock()
defer loggerLock.Unlock()
logger, err = s.Logger(errs)
if err != nil {
log.Fatal(err)
}
}()
go func() {
for {
err := <-errs
if err != nil {
log.Print(err)
}
}
}()
if len(*svcFlag) != 0 {
err := service.Control(s, *svcFlag)
if err != nil {
log.Printf("Valid actions: %q\n", service.ControlAction)
log.Fatal(err)
}
return
}
err = s.Run()
if err != nil {
logError(err)
}
}
示例12: main
// Service setup.
// Define service config.
// Create the service.
// Setup the logger.
// Handle service controls (optional).
// Run the service.
func main() {
svcFlag := flag.String("service", "", "Control the system service.")
flag.Parse()
if !service.Interactive() {
root, _ := osext.ExecutableFolder()
f, err := os.OpenFile(root+"/output.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
log.Fatal(err)
}
defer f.Close()
log.SetOutput(f)
}
svcConfig := &service.Config{
Name: "FPL Checker",
DisplayName: "FPL Checker",
Description: "Free Post Code Lottery daily winner checker",
}
prg := &program{}
s, err := service.New(prg, svcConfig)
if err != nil {
log.Fatal(err)
}
errs := make(chan error, 5)
logger, err = s.Logger(errs)
if err != nil {
log.Fatal(err)
}
go func() {
for {
err := <-errs
if err != nil {
log.Print(err)
}
}
}()
if len(*svcFlag) != 0 {
err := service.Control(s, *svcFlag)
if err != nil {
log.Printf("Valid actions: %q\n", service.ControlAction)
log.Fatal(err)
}
return
}
err = s.Run()
if err != nil {
logger.Error(err)
}
}
示例13: runService
func runService() {
p := &program{}
s, err := service.New(p, sc)
if err != nil {
log.Fatal(err)
}
err = s.Run()
if err != nil {
log.Fatal(err)
}
}
示例14: main
func main() {
usageHelpMessage := `You must set the config, e.g. BarcodeQueryTool.exe -config="config.json"`
// Get flags
svcFlag := flag.String("service", "", "Control the system service.")
mainconfig := flag.String("config", "", usageHelpMessage)
flag.Parse()
svcConfig := &service.Config{
Name: "Barcode Query Tool",
DisplayName: "BarcodeQueryTool",
Description: "Back-end for BarcodeQueryTool in Siemens WinCC",
Arguments: []string{"-config=" + *mainconfig},
}
newApp := &app{}
s, err := service.New(newApp, svcConfig)
if err != nil {
log.Fatal(err)
}
if *svcFlag != "" {
err = service.Control(s, *svcFlag)
if err != nil {
log.Printf("Valid actions: %q\n", service.ControlAction)
log.Fatal(err)
}
return
}
newApp.execPath, err = osext.ExecutableFolder()
if err != nil {
log.Fatalf("Error finding program executable path: %v", err)
}
// Load config
if *mainconfig == "" {
log.Fatal(usageHelpMessage)
}
newApp.conf = &api.AppConfig{}
err = newApp.conf.LoadFromFile(newApp.execPath + "\\" + *mainconfig)
if err != nil {
log.Fatalf("Error loading %v: %v", *mainconfig, err)
}
err = s.Run()
if err != nil {
log.Fatal(err)
}
}
示例15: main
func main() {
if commandLineSetup() {
return
}
// setup system service
serviceConfig := &service.Config{
Name: daemon.Daemon.Name,
DisplayName: daemon.Daemon.DisplayName,
Description: daemon.Daemon.Description,
}
supervisor := daemon.Daemon.NewSupervisor()
s, err := service.New(supervisor, serviceConfig)
if err != nil {
log.Fatalf("Operating system is not supported: %s", err)
}
supervisor.BindToService(s)
if len(*serviceParam) != 0 {
err := service.Control(s, *serviceParam)
if err != nil {
log.Info("Valid service actions:\n", service.ControlAction)
log.Fatal(err)
}
return
}
// initialize application context
context := context.NewContext()
err = context.LoadConfig(configurationFile)
if err != nil {
log.Fatal("Loading configuration file failed.")
}
if cfgfile.ValidateConfig() {
log.Info("Config OK")
return
}
backendSetup(context)
// start main loop
services.StartPeriodicals(context)
err = s.Run()
if err != nil {
log.Fatal(err)
}
}