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

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С.

12000 руб.

02.09.2020    170321    947    403    

909

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

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

8400 руб.

20.08.2024    13291    102    46    

105

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

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

9360 руб.

17.05.2024    26851    91    48    

134

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

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

22200 руб.

06.10.2023    16996    41    15    

75

SALE! %

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

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

4800 3840 руб.

14.01.2013    190792    1151    0    

918

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

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

15000 руб.

10.11.2023    11544    40    27    

66

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

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

3600 руб.

27.12.2024    966    2    0    

5

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

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

5000 руб.

07.02.2018    104017    244    100    

306
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kuzyara 2108 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. Да.
Оставьте свое сообщение