1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/konyshe-gogo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
UtilsGuard.go 1.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
kony Отправлено 14.02.2022 08:18 13e3120
package gogo
import (
"os"
"os/exec"
"strconv"
"strings"
)
func service(handler func()) {
restart_delay := 0
var args []string
for i := 1; i < len(os.Args); i++ {
if strings.HasPrefix(os.Args[i], "--gogo-restart-delay") {
restart_delay, _ = strconv.Atoi(strings.Split(os.Args[i], "=")[1])
continue
}
args = append(args, os.Args[i])
}
if restart_delay > 0 {
for {
cmd := exec.Command(os.Args[0], args...)
cmd.Env = os.Environ()
//cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Start(); err != nil {
LogErrorF("failed to run command: %s\n", err)
}
if err := cmd.Wait(); err != nil {
LogErrorF("failed to wait command: %s\n", err)
}
TimeSleepMilliSecond(restart_delay)
}
}
handler()
}
func StartGuard(handler func()) {
daemon := false
var args []string
for i := 1; i < len(os.Args); i++ {
if os.Args[i] == "--gogo-background" {
daemon = true
continue
}
args = append(args, os.Args[i])
}
if daemon {
cmd := exec.Command(os.Args[0], args...)
cmd.Env = os.Environ()
if err := cmd.Start(); err != nil {
LogErrorF("failed to run command: %s\n", err)
}
return
}
service(handler)
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/konyshe-gogo.git
git@api.gitlife.ru:oschina-mirror/konyshe-gogo.git
oschina-mirror
konyshe-gogo
konyshe-gogo
v2