Обработчик на уровне движка стоп сигнала для запущенного скрипта
Описание задачи
Корректная обработка завершения процесса oscript (запущенного скрипта) Какую задачу вы смогли бы решить, если бы в 1Script была предлагаемая Вами функциональность? Корректно обрабатывать зависание процессов по таймауту
Пример, Есть скрипт1 запускающий скрипт2 и ожидающий его завершения. В скрипт2 используется запуск 1С Предприятие для каких то действий.
При получении сигнала "Завершить" от скрипта1 в скрипт2 ( ПроцессСкрипт2.Завершить()). Необходимо точно так же завершить работу и с 1С Предприятие
Опишите решение
Метод ПриПолученииКомандыЗавершить - должен вызываться с при получении соответствующей команды из системы
Метод ПриПолученииСигналаСистемы(ИмяСигнала) - для обработки любых сигналов системы
Дополнительная информация
Статья по обработки аналогичной ситуации в golang https://habr.com/ru/post/260661/
/cc @allustin @EvilBeaver @nixel2007 @dmpas - уважаемые мейнтейнеры oscript рассмотрите вопрос
Обработка сигналов штука интересная. Если перекладывать на 1сные рельсы, то это похоже на событие "ОбработкаВнешнегоСобытия" в модуле приложения. но кажется, что здесь хватит ПередЗавершениемРаботы/ПриЗавершенииРаботы в entrypoint у скрипта.
Я не уверен, что в шарповом процессе вообще есть место под перехват таких сигналов. Покажите мне, плиз, место в C# в которое я мог бы в принципе встроиться для решения этой задачи?
@EvilBeaver https://gist.github.com/jvshahid/6fb2f91fa7fb1db23599 https://stackoverflow.com/questions/6546509/detect-when-console-application-is-closing-killed https://github.com/aspnet/Hosting/issues/870
Поможет не знаю! Но очень бы хотелось!!
Я был бы признателен за пулреквест или ислледование в этой области. Кроссплатформенность, нативные библиотеки... все кажется непростым в части вывода в продакшен..
@EvilBeaver ты же помнишь что я сишарп не умею :)
Ну это значит не к тебе обращение, а просто в мир
@khorevaa есть подстава. Обработчик кнопки вызывается в другом потоке, не в том, в котором работает твой скрипт. И как бы не работает...