Why our batch process works locally and not from Jenkins?

Article ID:115000733051
1 minute readKnowledge base

Issue

  • We have a batch process that works locally but does not work when we run it on a Windows Agent

Environment

  • CloudBees Jenkins Enterprise - Managed controller (CJEMM)

  • CloudBees Jenkins Enterprise- Operations Center (CJEOC)

  • CloudBees Jenkins Team (CJT)

  • CloudBees Jenkins Platform - Client controller (CJPCM)

  • CloudBees Jenkins Platform - Operations Center (CJPOC)

  • Windows Agents

Resolution

In these cases, the issue is usually related to the script inability to run on a headless machine, or related to different issue on the Agent configuration

  • Check that your batch process does not need UI, on a headless system, you can not interact with the UI to give some inputs to a program.

  • Check that the Agent Service is running as a regular user account, the profile of the System user account it is different, there are programs do not work with this profile, the recommended way to run the Jenkins Agent process is with a regular user account with the proper permissions on the system. In Windows Vista®, Windows Server 2008, and later versions of Windows, the operating system mitigates this security risk by isolating services in Session 0 and making Session 0 noninteractive. Only system processes and services run in Session 0, for more details you can take a look at Impact of Session 0 Isolation on Services and Drivers in Windows

  • Check that you do not spawn process, if you run process on background the Agent process lose the control over them and could not know if them are finished or not, you have more details in Spawning processes from build