на го сервис, слушающий юникс-сокет и пересылающий данные дальше. у него в начале main() лежит логирование старта вне какого-либо цикла или условия, сильно после логирования стартует горутина, в которой реализуется функционал. есть юнит-файлы для сервиса и сокета. само по себе все работает нормально, но каждые полминуты логируется старт сервиса, причем пиды в логах совсем не те, что в выводе ps. и вот я голову сломал, это я не понимаю, как работает го, вейтгруппы, горутины и т.д., системд чудит или что-то третье. кто-нибудь может по такому, путаному, описанию подсказать, куда глянуть, копнуть?
возможно сервис падает а его рестартует какойнить systemd
логов о падении нет, в юнит файле перезапуск отключен
func main() { logger, _ := syslog.New(syslog.LOG_INFO|syslog.LOG_WARNING|syslog.LOG_DAEMON|syslog.LOG_ERR|syslog.LOG_NOTICE, "myservice") var err = logger.Info("myservice started") и вот это "myservice started" каждые полминуты повторяется
если пиды при старте и через минуту отличаются - понятно что был рестарт, а значит и падение или завершение сервиса
Как вариант рестарт, да.
прошу прощения, type=simple [Unit] Description=myservice Requires=myservice.socket network.target Before=unbound.service nsd.service [Service] Type=simple ExecStart=/usr/local/bin/myservice -c /usr/local/etc/myservice.conf User=bind Group=bind [Install] WantedBy=multi-user.target
а еще какаято хрень не может запускать этот сервис?
service myservice stop && ps ax | grep myservice
Обсуждают сегодня