Пишу jenkins pipeline, в скрипте есть стадия остановки процесса, если он существует. Скрипт отрабатывает, и якобы удачно убивает процесс, без всяких ошибок и тд. Но на самом деле он не убивает его. Переписал этот стейдж в локальный батник файл и запустил от имени админа, и этот процесс умер. Хотел бы узнать, как можно исправить мою проблему? чтобы jenkins сам смог убивать процесс, возможно ему не хватает прав для этого, не знаю. Ниже прелагаю скрипт:
steps {
script {
bat """
echo %DATE% %TIME% - Checking if ${SERVICE_NAME} process is running >> ${DEPLOY_LOG}
set PROCESS_FOUND=false
for /f "tokens=2 delims==" %%i in ('wmic process where "name='${SERVICE_NAME}.exe'" get ProcessId /format:list 2^>nul') do (
echo %DATE% %TIME% - Process ${SERVICE_NAME} found with PID %%i >> ${DEPLOY_LOG}
set PROCESS_FOUND=true
)
echo %DATE% %TIME% - Process found: %PROCESS_FOUND% >> ${DEPLOY_LOG}
"""
bat """
echo %DATE% %TIME% - Attempting to stop ${SERVICE_NAME} process >> ${DEPLOY_LOG}
if "%PROCESS_FOUND%"=="true" (
for /f "tokens=2 delims==" %%i in ('wmic process where "name='${SERVICE_NAME}.exe'" get ProcessId /format:list 2^>nul') do (
wmic process where processid=%%i delete
if %errorlevel% equ 0 (
echo %DATE% %TIME% - Process ${SERVICE_NAME} stopped successfully >> ${DEPLOY_LOG}
) else (
echo %DATE% %TIME% - Couldn't stop process ${SERVICE_NAME} >> ${DEPLOY_LOG}
)
)
) else (
echo %DATE% %TIME% - No process ${SERVICE_NAME} found to stop >> ${DEPLOY_LOG}
)
"""
}
}
}```
Написал собственный bat файл для остановки процесса.
Владислав Лисицкий is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.