After migrating to an OS that uses systemd as service manager, you’ve noticed that the Init.d scripts you were using to start up your service are not working anymore.
- CloudBees CI (CloudBees Core) on traditional platforms - Client controller
- CloudBees CI (CloudBees Core) on traditional platforms - Operations Center
- CloudBees Jenkins Platform - Client controller
- CloudBees Jenkins Platform - Operations Center
- CloudBees Jenkins Distribution
- Jenkins LTS
You have to create a systemd service in order to start and stop your service. You can do it following Jenkins intermittently fails to restart on RHEL 7 and CentOS 7.
On that article, you should follow the instructions to migrate the Init.d script you have to a systemd service.
You can modify the values of the output systemctl with your values, here’s a more detailed explanation of the options:
- jenkins.service (file you create under /etc/systemd/…): it will define the name of the service you’re creating on systemd, if you create a file named
cloudbeescore.service, you’ll be able to start the service running
systemctl start cloudbeescore
- Description: is a text that will appear as service’s description.
- Wants: configures requirement dependencies on other units.
- ExecStart: is the command that will be run by systemd when you run a
systemctl startcommand (you may add the command you was running on your previous environment).
- User: is the user that will start Jenkins (we suggest you not using root)
- SuccessExitStatus: defines the exit status definitions that will be considered successful terminations.
- TimeoutStopSec: as there are no
ExecStopin the file generated by the script, it will make the service get
SIGTERMon stop call and
SIGKILLafter the defined seconds.
- RestartSec: configures the seconds to sleep before restarting a service.
- Limit*: these properties configure the limits of this service, matching our prepare Jenkins for support recommendations.
- WantedBy: sets the runlevel (using multi-user.target will set it to Multi-user)
Don’t forget enabling the service by running
systemctl enable cloudbeescore. Otherwise, the service won’t start on server restarts.