Я написал пакетный скрипт Windows для запуска сервера Apache Tomcat через Jenkins. Когда сервер начинает работать, трассировка сервера отображается в консоли Jenkins. Но внезапно окно сервера закрывается, говоря, что Process просочился файловый дескриптор в консоль Jenkins. Почему это происходит? Есть ли способ запустить пакетный сценарий без вывода трассировки сервера в консоли Jenkins?
1 ответ
Чтобы отключить трассировку сервера, вы можете перенаправить вывод из bat в NUL. Пример: your.bat> NUL 2> & 1 Подробнее о перенаправлении вывода в Windows можно узнать здесь: http://www.robvanderwoude.com/battech_redirection.php
Твоя вторая проблема с Дженкинсом кажется ожидаемым. Вы можете найти больше объяснений в официальной вики Дженкинс, здесь: https://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build. Обратите внимание на информацию в синем поле - это ошибка, которую вы получение.
Я предполагаю, что вы пытаетесь запустить сервер, используя действие сборки (Выполнить пакетную команду Windows) или шаг после сборки. Это делает его неотъемлемой частью вашей сборки, таким образом блокируя его завершение. Для этого вам следует попробовать использовать плагин Batch Tasks для Jenkins, так как он не заблокирует вашу сборку. Ваша сборка будет успешно завершена, и задача будет выполняться отдельно.