Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kasworld/signalhandlewin

signal handler for windows
https://github.com/kasworld/signalhandlewin

service-maker signal-handler

Last synced: about 2 months ago
JSON representation

signal handler for windows

Awesome Lists containing this project

README

        

# golang signal handler for server/service for windows

signalhandle (리눅스용) 을 수정한
윈도우용 서버/서비스를 만드는데 사용하는 signal handler 입니다.

# 기능

pid lockfile을 사용해서 서비스의 제어를 가능하게 해줍니다.

서비스 시작 : 중복 실행을 막으며 서비스 시작이 가능합니다.

-service=start

서비스 종료 : ctrl-c 등으로 종료할때 서비스 클린업을 하고 종료 할 수 있습니다.

-service=stop

서비스 재시작 : 실행중인 서비스를 종료하고 다시 시작 합니다.

-service=restart

서비스 강제 재시작 : 전원 중단 등으로 비정상 종료된 경우 pid lockfile을 지우고 서비스를 강재로 시작 합니다.

-service=forcestart

# 사용시 추가 되는 인자

-service string
start,stop,restart,forcestart (default "start")

# 사용자 프로그램에서 구현 해야 하는 interface

서비스로 만드려는 프로그램 (struct) 에서 다음 인터페이스를 구현 합니다.

type ServiceI interface {
GetServiceLockFilename() string
ServiceInit() error
ServiceMain(ctx context.Context)
ServiceCleanup()
GetLogger() interface{} // LoggerI 를 구현 해야 합니다.
}

type LoggerI interface {
Reload() error
Fatal(format string, v ...interface{})
Error(format string, v ...interface{})
Debug(format string, v ...interface{})
}

# 사용 예제

example/example.go 참고

# 사용 프로젝트

https://github.com/kasworld/goonlinescaffolding

https://github.com/kasworld/gowasm3dgame

https://github.com/kasworld/gowasm2dgame

https://github.com/kasworld/goguelike