Стартовая страница › Форумы › Понять, как работает ПО › Автозапуск ScadaServerMono
- В этой теме 9 ответов, 3 участника, последнее обновление 3 года, 9 месяцев назад сделано
Mikhail.
-
АвторСообщения
-
30.08.2022 в 14:10 #24686
vg
УчастникЗдравствуйте!
Некоторое время реализуем системы с помощью Rapid Scada и для работы с внешними приложениями используем ScadaServerMono. Так как системы, как правило, должны автоматически восстанавливать работу, например в следствие перезагрузки компьютера, то необходимо настроить запуск ScadaServerMono.exe при старте системы. В данный момент я это делаю либо с помощью планировщика заданий, либо с помощью автозагрузки. Но столкнулся недавно с тем, что запуск через планировщик может сбоить и несмотря на все настройки, которые должны страховать ошибку запуска, всё же сервер может остаться не запущенным.
Собственно хочу узнать как лучше это реализовать?
В текущем проекте рестарт сервера происходит по расписанию без логона пользователя в систему.Пробовал подменить в реестре приложение, которое запускает служба ScadaServerSvc, но не удалось. Получил ошибку в логе сервера
System.InvalidOperationException: Cannot see if a key has been pressed when either application does not have a console or when console input has been redirected from a file. Try Console.In.Peek.
at System.Console.get_KeyAvailable()Судя по всему проблема в том, что ScadaServerMono это консольное приложение и оно не может быть преобразовано в службу.
30.08.2022 в 14:59 #24689
manjey73УчастникЧего-то не понимаю, а чем вам service scadaserver start не нравится ?
Если мы говорим о Mono то подразумевается работа на Linux, и все службы там запускаются через init.d а не через велосипед….
опять же, пишите скрипты если сервер упал и поднимайте снова, убивая процесс…
30.08.2022 в 15:02 #24690vg
УчастникОбычная служба не позволяет запускать внешние приложения из SCADA в отличие от ScadaServerMono
30.08.2022 в 15:22 #24691
manjey73УчастникА, вы как-то хитро запускаете ScadaServerMono но на Windows машине?
Тут не подскажу, но возможно у планировщика есть возможность проверять при запуске все ли нужное стартануло?. Типа указать, стартовать только если запустился такой-то процесс…
30.08.2022 в 16:18 #24692vg
УчастникДа я просто взял exe из дистрибутива под Linux и запускаю вместо службы (Вы мне с Михаилом это и подсказывали, если правильно помню :)). Просто консолька висит и работает как сервер. Через планировщик заданий это консольное приложение уходит в фоновые процессы, но сервер работает.
В планировщике есть функция стартануть, если пропущен запуск. По идее должно отрабатывать, но почему то у нас после рестарта сервера не отработало (может обновления какие то накачались и повлияло на работу).
Собственно и подумал может есть какие то грамотные способы решать подобные проблемы, чтобы была гарантия устойчивой работы.
30.08.2022 в 16:49 #24693
manjey73УчастникТут надо найти причину почему он не стартует. Может чтобы 100% стартануло, нужно, чтобы до того как было что-то запущено.
В Linux есть что-то подобное, связанное с правилами и можно указать, ЭТО запускать только тогда, когда запущено ТО-ТО и ТО-ТОВот и подумал, может и в планировщике Windows есть что-то подобное ?
Тут к сожалению не подскажу толком.
30.08.2022 в 16:53 #24694
manjey73УчастникНу это если действительно связанно с тем, что СерверМоно стартует раньше чего-то важного для его запуска.
30.08.2022 в 16:57 #24695
manjey73Участникhttps://softikbox.com/kak-v-windows-7-8-i-10-naznachit-otlozhennyiy-start-prilozheniy-14593.html
Или настроить отложенный запуск при старте ПК или Входе, и добавив автологирование например
30.08.2022 в 17:32 #24696vg
УчастникБлагодарю за варианты!
31.08.2022 в 12:05 #24701
MikhailМодераторЕщё можно в настройках службы поставить галочку взаимодействия с рабочим столом. Не факт, что поможет, но стоит попробовать.
Если планировщик не смог что-то запустить, то нужно искать запись в журнале Windows с подробностями ошибки.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.