14580b6144
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
32 lines
532 B
Go
32 lines
532 B
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/coreos/go-systemd/v22/dbus"
|
|
)
|
|
|
|
func notifyHandler(n string, ch chan interface{}, sCh chan os.Signal) (string, error) {
|
|
select {
|
|
// alerts to restart systemd unit
|
|
case <-ch:
|
|
statusCh := make(chan string, 1)
|
|
c, err := dbus.New()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
_, err = c.TryRestartUnit(n, "fail", statusCh)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
select {
|
|
case result := <-statusCh:
|
|
return result, nil
|
|
}
|
|
// SIGTERM
|
|
case <-sCh:
|
|
os.Exit(1)
|
|
return "", nil
|
|
}
|
|
}
|