Запуск процесса с ожиданием завершения дочерних первого уровня

11.06.21

Разработка - Инструментарий разработчика

Запускает указанный процесс с параметрами и ожидает завершения его и дочерних процессов 1 уровня. Можно указать произвольный таймаут, по истечении которого ожидание прерывается. Также можно заставить скрипт принудительно завершить родительский и дочерние процессы, которые не завершились сами к моменту наступления таймаута.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
WaitForProcessTree.vbs
.vbs 34,00Kb ver:1.0.3
10
10 Скачать (1 SM) Купить за 1 850 руб.

Скрипт пришлось родить для запуска баз по именам с помощью стартера платформы 1С 8.3.

Известная проблема состоит в том, что стартер (1cestart.exe) завершается раньше запущенного им дочернего процесса, что делает использование команды Start бессмысленым. Данный скрипт опрашивает список процессов по идентификатору родительского процесса PID средствами WMI с указанным интервалом, и завершается, когда ссылок на PID не остается.

Теперь можно забыть о прописывании версий и прочих индивидуальных настроек баз в скрипты, а указывать только файл списка баз (или сослаться на него из 1cv82\common\1CESCmn.cfg) и имя базы - все остальное стартер найдет в списке баз.

Область применения - пакетный запуск конфигуратора (тестирование, архивация, выгрузка/загрузка исходников для трехстороннего сравнения и прочей обработки).

 Разумеется, применение этого скрипта не ограничивается запуском 1С, единственное ограничение - дочерние процессы 2 и следующих уровней не просматриваюся. Допилить на этот случай не так просто, выйдет динамический WMI-запрос неопределенной длины, и наверняка будут проблемы с его исполнением.

Запуск нужно производить при помощи "cscript //nologo ...", чтобы избежать появления диалоговых окон.

Толком не тестил (отладчика под рукой нет, а наколенная разработка уже не радует), но у клиентов работает без нареканий...

*****

    Версия 1.0.4, 2015-06-02.
Добавлен контроль времени создания дочерних процессов.
Вероятность попадания процессов с идентичным PID родителя в список ожидания завершения сведена почти к нулю (почти - потому что в некоторых случаях не удается точно определить время запуска и/или завершения корневого процесса).

    Версия 1.0.5, 2016-01-01.
Реализованы отладочные сообщения для процедуры разбора параметров.
Мелкие исправления во встроенной справке скрипта.

    Версия 1.0.6, 2021-06-10.
Добавлен параметр TimeToStart=5сек, определяющий время ожидания запуска дочерних процессов после завершения родительского, для громоздких процессов и тормознутых систем.
Добавлен вывод справки при запуске без параметров.
Исправелны сообщения, содержащии время начала и завершения дочернего процесса - была путаница с UTC.

1cestart.exe запуск программ ожидание завершения дерево процессов

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    183057    1017    403    

965

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    23717    156    84    

155

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    20135    51    19    

86

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    13554    55    33    

76

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    30313    103    48    

147

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    2258    4    0    

7

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    19044    7    32    

43
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kuzyara 2138 06.03.15 04:28 Сейчас в теме
2. GreenDragon 06.03.15 09:37 Сейчас в теме
(1) kuzyara, ога! Сам по тому скрипту настраивал архивирование, дополнив его сбросом сделанного архива на ftp(бухгалтеры просили для аудиторов такое устроить). Думаю, Powershell гораздо гибче и удобнее в таких вопросах
3. VGHOST 168 06.03.15 11:23 Сейчас в теме
(2) GreenDragon, Согласен, гибче и удобнее - если не считать размера интерпретатора и настройку инфраструктуры, чтобы оно вообще могло выполняться. В корпоративной полностью настроенной сети, когда вся автоматизация писана на PS, это выгодно, но не для точечного применения с многократной загрузкой интерпретатора из CMD-скриптов.
WSH многократно легче и совместим с любыми версиями Windows, актуальными на текущий момент. Да и данная конкретная задача таких мощностей не требует...
6. GreenDragon 28.03.15 14:52 Сейчас в теме
(3)
если не считать размера интерпретатора и настройку инфраструктуры

Это ты о чём вообще?

но не для точечного применения с многократной загрузкой интерпретатора из CMD-скриптов.

И зачем в принципе cmd, когда всё прекрасно пишется на PS?

с любыми версиями Windows, актуальными на текущий момент

Актуальными на данный момент можно считать только операционки, выпущенные после WinXP. Все они работают с PS (Хотя и WinXP тоже поддерживает PS)
7. VGHOST 168 30.03.15 20:41 Сейчас в теме
(6) GreenDragon, О времени запуска первого скрипта для начала - PS раскочегаривается медленнее жабы. Но это как раз мелочи.
А вот скажи, ты все скрипты свои подписываешь или демократию у себя в сети развел?
Инструмент действительно мощный, и чтобы ваять вредоносный код на нем семи пядей во лбу быть не надо...
Билли (или кто там теперь рулит) не зря по умолчанию поставил политику restricted.

У CMD своя ниша, у PS - своя. Там, где нужно подряд запустить несколько программ с почти статическими параметрами, раскочегаривать PS нет никакого смысла. Причем ниша последнего сильно наступает на владения компилируемых языков, и приблуды сложнее выложенного здесь скрипта я бы предпочел делать с использованием полноценного отладчика. Того гляди GUI на нем писать начнут, как на питоне и подобных...
CMD безусловно убогий и кривой, зато простой и быстрый. Замечательно, что MS родил наконец что-то не такое глючное и сравнимое по возможностям с интерпретаторами под Linux 30-летней выдержки (и даже слегка перестарался :)), но срочно переползать на него и переписывать имеющееся хозяйство нет никакого желания. Они бы начали делать его лет 15 назад вместе с ядром NT :(

Была бы у меня своя сеть я бы тоже озаботился доменными политиками, раздачей сертификатов и скриптами на PS, или лучше приличной библиотекой в бинариках, безо всяких прокладок-интерпретаторов.
Только вместо этого у меня в хозяйстве мелкие сервера, которые толком никто не админит, и покрупнее, админам которых не сильно озабочены стройностью инфраструктуры, когда за оптимизацию никто не платит, заморачиваться не хотят.
В такой ситуации вполне устраивают менее требовательные вещи, хоть и отладчика приличного (бесплатного) не найти, разве только ECMAScript + Eclipse...

Впрочем, это все демагогия и споры о вкусах.
Что я выложил, то выложил, не вижу смысла далее полемику разводить.
4. iov 407 08.03.15 01:15 Сейчас в теме
не удалось запустить приложение код ошибки 8 (win 8.1)
5. VGHOST 168 13.03.15 12:47 Сейчас в теме
(4) iov, Под W8 не тестировал, только под W7/Srv2008.
Попробуй запустить с повышенными привилегиями ("Запуск от имени администратора") а также простую командную строку cmd.exe без параметров - вроде была такая ошибка при несуществующей рабочей папке (/W), либо проблема в самой командной строке.
Какие параметры передавал скрипту?
8. GreenDragon 04.04.15 11:01 Сейчас в теме
Спасибо, достойный и развёрнутый ответ.
Для больших сетей и периодически решаемых в них задач, прекрасно подходит PS. В твоём конкретном случае с маленькой сетью, действительно нет особой нужды заморачиваться. Про скорость... Ну, я тут не разруливаю скриптами посадки/взлёты самолётов или отправление поездов с атомной станции, так что задержка запуска на пару-тройку секунд не является критичным параметром для выбора среды.

Политики... По этому поводу можно заглянуть сюда. Батники, кстати, вполне себе успешно могут тоже дел наворотить, так что с точки зрения безопасности PS скрипты более контролируемы.

Для меня батники имеют только один плюс - большая часть эникейщиков сможет после меня разобраться и модифицировать его.

В общем, ок. Благодарю за уделённое на ответы время и приятный диалог!
9. VGHOST 168 06.04.15 10:05 Сейчас в теме
(8) GreenDragon, Взаимно.
И спасибо за ссылку - сделать скрипт для групповой подписи других скриптов интересная идея.
10. Spoke37 02.06.15 11:21 Сейчас в теме
Реализация для дочерних процессов 2го уровня не планируется?
11. VGHOST 168 02.06.15 20:02 Сейчас в теме
(10) Spoke37, Увы, только за отдельную плату.
12. itoptimum 24 10.06.21 10:21 Сейчас в теме
Идея правильная и хорошая, но немного не причёсанная:
1. Выдать подсказку, как на экране, ни при запуске без параметров без cscripta, ни с ним - не удалось.
2. Не хватает параметра или банальной задержки - при проверке дочерних процессов после выхода основного дочерние еще не запущены, возвращает пустой список, но на деле это не так. Пример - обновление инструментов разработчика из скрипта:
cscript //nologo PUBID_334426-WaitForProcessTree.vbs /TimeOut:180 /Terminate /LogFile:upirun.log /LogLevel:5 %exe1c% CONFIG /Visible /DisableSplash /DisableStartupMessages /AU- /S %srv1c%\%Base1c% /N%user1c% /P%pass1c% /LoadCfg %cmds%\%ir% -Extension ИнструментыРазработчикаTormozit /UpdateDBCfg /UC %Code1c% /Out"%dirlog%\%tmplog%" -NoTruncate /AppAutoCheckVersion /AppAutoInstallVersion+
(запускается конфигуратор)
3. Скрипт распространяется по лицензии GNU LGPL v3, это значит, что я могу включать данный скрипт в состав своих прикладных решений, распространяемых аналогично/бесплатно?
13. VGHOST 168 11.06.21 23:12 Сейчас в теме
1. Параметр /? отменили уже? Ну да, про запуск без параметров забыл, каюсь.
Исправил.

2. Не разу не сталкивался с пропуском дочерних процессов, скорее всего что-то не так с системой. Тем более что время завершения родителя определяется с точностью до интервала опроса процессов, то есть как правило на полсекунды больше...
Добавил искусственный допуск TimeToStart, по умолчанию 5 секунд, может поможет, но верится с трудом.

3. Да.
Оставьте свое сообщение