I am currently looking at how Zabbix Agent handles timeouts for processes (Agent timeout threshold).
At the moment it *looks* like it terminates any child/spawned processes when timeout is reached. Attempting to work around this by forking out to background or similar is no good, as the agent runs processes with cmd /c on a Windows machine.
For example if you attempt to run a powershell cmdlet that can take a long time (i.e Get-WindowsOptionalFeatures), it will reach Zabbix Agent timeout (30s) and then the agent will terminate the parent "cmd /c" process, which in turn terminates the powershell instance.
I have tried various incantations of "start /B", "powershell Start-Process" with no joy, the Agent still waits for any subprocesses to exit.
Replicate with a Frontend script calling "start /B ping 127.0.0.1 -n 32 > nul && echo Finished"
At the moment it *looks* like it terminates any child/spawned processes when timeout is reached. Attempting to work around this by forking out to background or similar is no good, as the agent runs processes with cmd /c on a Windows machine.
For example if you attempt to run a powershell cmdlet that can take a long time (i.e Get-WindowsOptionalFeatures), it will reach Zabbix Agent timeout (30s) and then the agent will terminate the parent "cmd /c" process, which in turn terminates the powershell instance.
I have tried various incantations of "start /B", "powershell Start-Process" with no joy, the Agent still waits for any subprocesses to exit.
Replicate with a Frontend script calling "start /B ping 127.0.0.1 -n 32 > nul && echo Finished"