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

11.06.21

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

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

Скачать файлы

Наименование Файл Версия Размер
WaitForProcessTree.vbs
.vbs 34,00Kb
10
.vbs 1.0.3 34,00Kb 10 Скачать

Скрипт пришлось родить для запуска баз по именам с помощью стартера платформы 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 запуск программ ожидание завершения дерево процессов

См. также

SALE! 20%

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    121545    670    389    

709

SALE! 25%

Infostart PrintWizard

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

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

18000 15300 руб.

06.10.2023    7252    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3490    11    1    

33

SALE! 30%

PowerTools

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177716    1073    0    

848

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99330    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

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

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18095    6    8    

39

1С HTML Шаблоны / HTML Templates

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

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28080    3    10    

14

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

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

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23590    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. kuzyara 1900 06.03.15 04:28 Сейчас в теме
2. GreenDragon 06.03.15 09:37 Сейчас в теме
(1) kuzyara, ога! Сам по тому скрипту настраивал архивирование, дополнив его сбросом сделанного архива на ftp(бухгалтеры просили для аудиторов такое устроить). Думаю, Powershell гораздо гибче и удобнее в таких вопросах
3. VGHOST 167 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 167 30.03.15 20:41 Сейчас в теме
(6) GreenDragon, О времени запуска первого скрипта для начала - PS раскочегаривается медленнее жабы. Но это как раз мелочи.
А вот скажи, ты все скрипты свои подписываешь или демократию у себя в сети развел?
Инструмент действительно мощный, и чтобы ваять вредоносный код на нем семи пядей во лбу быть не надо...
Билли (или кто там теперь рулит) не зря по умолчанию поставил политику restricted.

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

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

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

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

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

В общем, ок. Благодарю за уделённое на ответы время и приятный диалог!
9. VGHOST 167 06.04.15 10:05 Сейчас в теме
(8) GreenDragon, Взаимно.
И спасибо за ссылку - сделать скрипт для групповой подписи других скриптов интересная идея.
10. Spoke37 02.06.15 11:21 Сейчас в теме
Реализация для дочерних процессов 2го уровня не планируется?
11. VGHOST 167 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 167 11.06.21 23:12 Сейчас в теме
1. Параметр /? отменили уже? Ну да, про запуск без параметров забыл, каюсь.
Исправил.

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

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