Need to restart Jenkins service programmatically on a schedule
Posting this here for others that come here from Google. You can add a job to Jenkins to restart itself using the CLI. Add a job with a shell step to execute:
java -jar "$JENKINS_HOME/war/WEB-INF/jenkins-cli.jar" -s "$JENKINS_URL" safe-restart
If the above CLI method did not work (in my case it failed on: hudson.security.AccessDeniedException2: anonymous is missing the Overall/Read permission)
You can create a Groovy plugin build step and "Execute a system Groovy script":
import hudson.model.*;
Hudson.instance.doSafeRestart(null);
or the new Jenkins instance
import jenkins.model.*
Jenkins.instance.doSafeRestart(null);
Then, you can set this job to be triggered by schedule.
For example, to restart Jenkins daily on midnight, set "Build periodically": H 00 * * *