

Let me first demonstrate this concept using a basic example. They are executed by the kernel and are responsible for starting all the other processes. Both init and systemd are the parent of all process on the system. By using a double fork, the scripted input becomes disowned by the splunkd process and becomes a child of init or systemd, depending on your operating system.

If Splunk is told to stop (a requirement of upgrading), the scripted input will also stop. When a Splunk process runs a scripted input, the script becomes a child process of splunkd. A daemon is a process that runs in the background instead of being under direct control of a user.
Upgrade splunk universal forwarder upgrade#
I asked myself, could we use the Deployment Server to upgrade forwarders without ssh access? We can, by using a scripted input and a double fork.Ī double fork is commonly used by almost all Linux services to create a daemon. Splunk provides a convenient way of maintaining Splunk configuration files and apps across thousands of servers, but no direct support of pushing out installer upgrades using the Deployment Server. This usually happens when the Splunk admin relies on a different team to push updates, does not have ssh access to those servers, or the customer simply does not have a universal way of maintaining packages across their environment. As a Splunk Consultant, I commonly interact with customers using older or mixed versions of Splunk's Universal Forwarder in their environment.
