Size: a a a

2020 December 10

S

Sergey in Go-go!
я на стороне сил света, не более 🤣
источник

DP

Daniel Podolsky in Go-go!
Sergey
я на стороне сил света, не более 🤣
Напишите мне в личку, пожалуйста, зачем. Я разбаню
источник

H

Hiroki Fujisawa in Go-go!
Но вообще все в исходниках го есть, как ни парадоксально.
https://github.com/golang/sys/blob/master/windows/svc/example/main.go
источник

DP

Daniel Podolsky in Go-go!
Daniel Podolsky
Напишите мне в личку, пожалуйста, зачем. Я разбаню
Этичный хакер разбанен
источник

А

Ан in Go-go!
Хакеры, клавиатуры шумахеры..
источник

А

Ан in Go-go!
Куда все это делось, а?
источник

S

Sergey in Go-go!
Hiroki Fujisawa
Лучше почитать, как запускаются сервисы в Windows. syscall тут не причём ¯\_(ツ)_/¯
а вот и нет.
    var sI syscall.StartupInfo
   sI.Flags |= syscall.STARTF_USESHOWWINDOW
   sI.ShowWindow = syscall.SW_HIDE
   var pI syscall.ProcessInformation
   argv := syscall.StringToUTF16Ptr(command)
   err := syscall.CreateProcess(
       nil,
       argv,
       nil,
       nil,
       true,
       0,
       nil,
       nil,
       &sI,
       &pI)
источник

H

Hiroki Fujisawa in Go-go!
Sergey
а вот и нет.
    var sI syscall.StartupInfo
   sI.Flags |= syscall.STARTF_USESHOWWINDOW
   sI.ShowWindow = syscall.SW_HIDE
   var pI syscall.ProcessInformation
   argv := syscall.StringToUTF16Ptr(command)
   err := syscall.CreateProcess(
       nil,
       argv,
       nil,
       nil,
       true,
       0,
       nil,
       nil,
       &sI,
       &pI)
Каюсь, был неправ. В сортах Windows API не очень разбираюсь. :)
источник

DB

Dmitry Baynak in Go-go!
нельзя запуститься в gui режиме и сразу execve'шнуться (ну или как там в винде) в спрятанный режим?
ну либо окей, в gui режиме поднимаемся, но сразу форкаемся в спрятанный режим (а gui'шное прибиваем после форка)
источник

W

Wingman in Go-go!
Dmitry Baynak
нельзя запуститься в gui режиме и сразу execve'шнуться (ну или как там в винде) в спрятанный режим?
ну либо окей, в gui режиме поднимаемся, но сразу форкаемся в спрятанный режим (а gui'шное прибиваем после форка)
заинсталься как сервис)
источник

W

Wingman in Go-go!
хотя для этого тоже стартнуть надо, да
источник

 P

 ‌‌Gleb Pilipets... in Go-go!
Ребят, а если мне нужно запускать какую-то Golang функцию раз в сутки, то нормально для этого использовать встроенный sleep/ticker или лучше какую-то 3-d party cron либу?
источник

W

Wingman in Go-go!
 ‌‌Gleb Pilipets
Ребят, а если мне нужно запускать какую-то Golang функцию раз в сутки, то нормально для этого использовать встроенный sleep/ticker или лучше какую-то 3-d party cron либу?
Если софтинка вдруг будет перезапускаться по любой причине, то "раз в сутки" со слипом и тикером превратится в тыкву
источник

 P

 ‌‌Gleb Pilipets... in Go-go!
Wingman
Если софтинка вдруг будет перезапускаться по любой причине, то "раз в сутки" со слипом и тикером превратится в тыкву
Ну так при старте запускать тоже. Это демон очистки stale data, то есть данных созданных более дня назад. Там будет проверяться поле creation_time из БД, и т.д.
источник

 P

 ‌‌Gleb Pilipets... in Go-go!
То есть в принципе перезапуски не сломают
источник

W

Wingman in Go-go!
Про старт не уточнялось, а вот "раз в сутки" звучало)
источник

DB

Dmitry Baynak in Go-go!
 ‌‌Gleb Pilipets
Ну так при старте запускать тоже. Это демон очистки stale data, то есть данных созданных более дня назад. Там будет проверяться поле creation_time из БД, и т.д.
мб лучше тогда ticker с прописанным defer-recovery или запуском джоб в новой рутине
чтобы случайная паника не прибила ticker просто
источник

 P

 ‌‌Gleb Pilipets... in Go-go!
Так паника же прибъёт приложение? Мне нужно, чтобы и этот процесс тоже прибила тогда
источник

 P

 ‌‌Gleb Pilipets... in Go-go!
То есть это веб-сервис, у которого будет фоновый демон.
источник

DB

Dmitry Baynak in Go-go!
 ‌‌Gleb Pilipets
Так паника же прибъёт приложение? Мне нужно, чтобы и этот процесс тоже прибила тогда
либо прибить целиком процесс тогда, да, либо отловить её, чтобы всё не упало (просто смотря насколько это критично для работы приложения)
источник