Мне нужно запустить процесс под названием osqueryi
перед тем, как запустить приложение, и при завершении работы убить этот процесс. (Это своего рода демон, к которому можно обратиться. Мне нужно, чтобы он работал для того, чтобы мое приложение работало). 1006 *.
В хуке PersistentPostRun
я просто закрыл его:
func shutdown() {
if osqueryi != nil {
osqueryi.Kill()
}
}
Osqueryi
похож на интерактивную оболочку. Он должен быть передан os.Stdin
, потому что, очевидно, он использует isatty
. Если я этого не сделаю, он не запустится. Поэтому мне нужно начать этот процесс, потому что мне нужно запрашивать его, но мне не нужно записывать какие-либо входные данные, потому что идея состоит в том, чтобы использовать go модуль osquery-go
для выдачи запросов из моего приложения ...
Мне нужно вызвать его в подпрограмме go
, потому что в противном случае я не могу записать вывод журнала на экран ...
В любом случае, это вроде хорошо работает. НО, когда приложение закрывается, мой терминал не работает: моя строка подсказки отсутствует (не вижу, что я печатаю). Я предполагаю, потому что я назначаю это STDIN, но я никогда не пишу в него, и в то же время пишу вывод в STDOUT через fmt.Println()
.
Есть ли способ заставить эту работу?