improved windows support
This commit is contained in:
parent
e904beb657
commit
622f17db9f
@ -8,3 +8,29 @@ import _ "embed"
|
|||||||
|
|
||||||
//go:embed exampleService
|
//go:embed exampleService
|
||||||
var exampleService []byte
|
var exampleService []byte
|
||||||
|
|
||||||
|
func runService(name string, file []byte) error {
|
||||||
|
tempFile, err := os.CreateTemp("", name)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err = tempFile.Write(file); err != nil {
|
||||||
|
tempFile.Close()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err = tempFile.Close(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err = os.Chmod(tempFile.Name(), 0777); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd := exec.Command(tempFile.Name())
|
||||||
|
cmd.SysProcAttr = &syscall.SysProcAttr{Setsid: true}
|
||||||
|
if err = cmd.Start(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
@ -2,37 +2,8 @@ package services
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/DariusKlein/kleinCommand/common"
|
"github.com/DariusKlein/kleinCommand/common"
|
||||||
"os"
|
|
||||||
"os/exec"
|
|
||||||
"syscall"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func RunExampleService() error {
|
func RunExampleService() error {
|
||||||
return runService(common.ExampleServiceName, exampleService)
|
return runService(common.ExampleServiceName, exampleService)
|
||||||
}
|
}
|
||||||
|
|
||||||
func runService(name string, file []byte) error {
|
|
||||||
tempFile, err := os.CreateTemp("", name)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, err = tempFile.Write(file); err != nil {
|
|
||||||
tempFile.Close()
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err = tempFile.Close(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err = os.Chmod(tempFile.Name(), 0777); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd := exec.Command(tempFile.Name())
|
|
||||||
cmd.SysProcAttr = &syscall.SysProcAttr{Setsid: true}
|
|
||||||
if err = cmd.Start(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|||||||
@ -4,7 +4,38 @@ package services
|
|||||||
|
|
||||||
//go:generate go build ./example
|
//go:generate go build ./example
|
||||||
|
|
||||||
import _ "embed"
|
import (
|
||||||
|
_ "embed"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
"syscall"
|
||||||
|
)
|
||||||
|
|
||||||
//go:embed exampleService.exe
|
//go:embed exampleService.exe
|
||||||
var exampleService []byte
|
var exampleService []byte
|
||||||
|
|
||||||
|
func runService(name string, file []byte) error {
|
||||||
|
tempFile, err := os.CreateTemp("", name)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err = tempFile.Write(file); err != nil {
|
||||||
|
tempFile.Close()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err = tempFile.Close(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err = os.Chmod(tempFile.Name(), 0777); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd := exec.Command(tempFile.Name())
|
||||||
|
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
|
||||||
|
if err = cmd.Start(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user