jmihalich@ubuntu1804-jm:~$ sudo apt-get install jenkins Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: jenkins 0 upgraded, 1 newly installed, 0 to remove and 3 not upgraded. Need to get 0 B/76.5 MB of archives. After this operation, 77.4 MB of additional disk space will be used. Selecting previously unselected package jenkins. (Reading database ... 82905 files and directories currently installed.) Preparing to unpack .../archives/jenkins_2.173_all.deb ... Unpacking jenkins (2.173) ... Setting up jenkins (2.173) ... Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details. invoke-rc.d: initscript jenkins, action "start" failed. ? jenkins.service - LSB: Start Jenkins at boot time Loaded: loaded (/etc/init.d/jenkins; generated) Active: failed (Result: exit-code) since Fri 2019-04-19 19:26:45 UTC; 34ms ago Docs: man:systemd-sysv-generator(8) Process: 10463 ExecStart=/etc/init.d/jenkins start (code=exited, status=1/FAILURE) Apr 19 19:26:45 ubuntu1804-jm systemd[1]: Starting LSB: Start Jenkins at boot time... Apr 19 19:26:45 ubuntu1804-jm jenkins[10463]: Found an incorrect Java version Apr 19 19:26:45 ubuntu1804-jm jenkins[10463]: Java version found: Apr 19 19:26:45 ubuntu1804-jm jenkins[10463]: openjdk version "11.0.2" 2019-01-15 Apr 19 19:26:45 ubuntu1804-jm jenkins[10463]: OpenJDK Runtime Environment (build 11.0.2+9-Ubuntu-3ubuntu118.04.3) Apr 19 19:26:45 ubuntu1804-jm jenkins[10463]: OpenJDK 64-Bit Server VM (build 11.0.2+9-Ubuntu-3ubuntu118.04.3, mixed mode, sharing) Apr 19 19:26:45 ubuntu1804-jm jenkins[10463]: Aborting Apr 19 19:26:45 ubuntu1804-jm systemd[1]: jenkins.service: Control process exited, code=exited status=1 Apr 19 19:26:45 ubuntu1804-jm systemd[1]: jenkins.service: Failed with result 'exit-code'. Apr 19 19:26:45 ubuntu1804-jm systemd[1]: Failed to start LSB: Start Jenkins at boot time. dpkg: error processing package jenkins (--configure): installed jenkins package post-installation script subprocess returned error exit status 1 Processing triggers for ureadahead (0.100.0-20) ... Processing triggers for systemd (237-3ubuntu10.20) ... Errors were encountered while processing: jenkins E: Sub-process /usr/bin/dpkg returned an error code (1) jmihalich@ubuntu1804-jm:~$ ls -la /var/lib/jenkins total 8 drwxr-xr-x 2 jenkins jenkins 4096 Apr 15 11:23 . drwxr-xr-x 36 root root 4096 Apr 19 19:26 .. jmihalich@ubuntu1804-jm:~$ sudo cp jenkins /etc/init.d jmihalich@ubuntu1804-jm:~$ sudo cat /etc/init.d/jenkins #!/bin/bash # /etc/init.d/jenkins # debian-compatible jenkins startup script. # Amelia A Lewis # ### BEGIN INIT INFO # Provides: @@ARTIFACTNAME@@ # Required-Start: $remote_fs $syslog $network # Required-Stop: $remote_fs $syslog $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start @@PRODUCTNAME@@ at boot time # Description: Controls @@SUMMARY@@ ### END INIT INFO PATH=/bin:/usr/bin:/sbin:/usr/sbin DESC="@@SUMMARY@@" NAME=@@ARTIFACTNAME@@ SCRIPTNAME=/etc/init.d/$NAME [ -r /etc/default/$NAME ] && . /etc/default/$NAME #DAEMON=$JENKINS_SH DAEMON=/usr/bin/daemon DAEMON_ARGS="--name=$NAME --inherit --env=JENKINS_HOME=$JENKINS_HOME --output=$JENKINS_LOG --pidfile=$PIDFILE" JAVA=`type -p java` if [ -n "$UMASK" ]; then DAEMON_ARGS="$DAEMON_ARGS --umask=$UMASK" fi if [ "$JENKINS_ENABLE_ACCESS_LOG" = "yes" ]; then DAEMON_ARGS="$DAEMON_ARGS --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=combined --simpleAccessLogger.file=/var/log/$NAME/access_log" fi SU=/bin/su # Exit if the package is not installed if [ ! -x "$DAEMON" ]; then echo "daemon package not installed" >&2 exit 1 fi # Exit if not supposed to run standalone if [ "$RUN_STANDALONE" = "false" ]; then echo "Not configured to run standalone" >&2 exit 1 fi # Make sure there exists a java executable, it may not be allways the case if [ -z "$JAVA" ]; then echo "ERROR: No Java executable found in current PATH: $PATH" >&2 echo "If you actually have java installed on the system make sure the executable is in the aforementioned path and that 'type -p java' returns the java executable path" >&2 exit 1 fi # Which Java versions can be used to run Jenkins JAVA_ALLOWED_VERSIONS=( "18" "110" ) # Work out the JAVA version we are working with: JAVA_VERSION=$($JAVA -version 2>&1 | sed -n ';s/.* version "\(.*\)\.\(.*\)\..*".*/\1\2/p;') if [[ ${JAVA_ALLOWED_VERSIONS[*]} =~ "$JAVA_VERSION" ]]; then echo "Correct java version found" >&2 else echo "Found an incorrect Java version" >&2 echo "Java version found:" >&2 echo $($JAVA -version) >&2 echo "Aborting" >&2 exit 1 fi # load environments if [ -r /etc/default/locale ]; then . /etc/default/locale export LANG LANGUAGE elif [ -r /etc/environment ]; then . /etc/environment export LANG LANGUAGE fi # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # Make sure we run as root, since setting the max open files through # ulimit requires root access if [ `id -u` -ne 0 ]; then echo "The $NAME init script can only be run as root" exit 1 fi check_tcp_port() { local service=$1 local assigned=$2 local default=$3 local assigned_address=$4 local default_address=$5 if [ -n "$assigned" ]; then port=$assigned else port=$default fi if [ -n "$assigned_address" ]; then address=$assigned_address else address=$default_address fi count=`netstat --listen --numeric-ports | grep $address\:$port[[:space:]] | grep -c . ` if [ $count -ne 0 ]; then echo "The selected $service port ($port) on address $address seems to be in use by another program " echo "Please select another address/port combination to use for $NAME" return 1 fi } # # Function that starts the daemon/service # do_start() { # the default location is /var/run/jenkins/jenkins.pid but the parent directory needs to be created mkdir `dirname $PIDFILE` > /dev/null 2>&1 || true chown $JENKINS_USER `dirname $PIDFILE` # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started $DAEMON $DAEMON_ARGS --running && return 1 # Verify that the jenkins port is not already in use, winstone does not exit # even for BindException check_tcp_port "http" "$HTTP_PORT" "@@PORT@@" "$HTTP_HOST" "0.0.0.0" || return 2 # If the var MAXOPENFILES is enabled in /etc/default/jenkins then set the max open files to the # proper value if [ -n "$MAXOPENFILES" ]; then [ "$VERBOSE" != no ] && echo Setting up max open files limit to $MAXOPENFILES ulimit -n $MAXOPENFILES fi # notify of explicit umask if [ -n "$UMASK" ]; then [ "$VERBOSE" != no ] && echo Setting umask to $UMASK fi # --user in daemon doesn't prepare environment variables like HOME, USER, LOGNAME or USERNAME, # so we let su do so for us now $SU -l $JENKINS_USER --shell=/bin/bash -c "$DAEMON $DAEMON_ARGS -- $JAVA $JAVA_ARGS -jar $JENKINS_WAR $JENKINS_ARGS" || return 2 } # # Verify that all jenkins processes have been shutdown # and if not, then do killall for them # get_running() { return `ps -U $JENKINS_USER --no-headers -f | egrep -e '(java)' | grep -v defunct | grep -c . ` } force_stop() { get_running if [ $? -ne 0 ]; then killall -u $JENKINS_USER java daemon || return 3 fi } # Get the status of the daemon process get_daemon_status() { $DAEMON $DAEMON_ARGS --running || return 1 } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred get_daemon_status case "$?" in 0) $DAEMON $DAEMON_ARGS --stop || return 2 # wait for the process to really terminate for n in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do sleep 1 $DAEMON $DAEMON_ARGS --running || break done if get_daemon_status; then force_stop || return 3 fi ;; *) force_stop || return 3 ;; esac # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return 0 } # Verify the process did in fact start successfully and didn't just bomb out do_check_started_ok() { sleep 1 if [ "$1" -ne "0" ]; then return $1; fi get_running if [ "$?" -eq "0" ]; then return 2 else return 0 fi } case "$1" in start) log_daemon_msg "Starting $DESC" "$NAME" do_start START_STATUS="$?" do_check_started_ok "$START_STATUS" case "$?" in 0|1) log_end_msg 0 ;; 2) log_end_msg 1 ; exit 7 ;; esac ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) log_end_msg 0 ;; 2) log_end_msg 1 ; exit 100 ;; esac ;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start START_STATUS="$?" sleep 1 do_check_started_ok "$START_STATUS" case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ; exit 100 ;; # Old process is still running *) log_end_msg 1 ; exit 100 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; status) get_daemon_status case "$?" in 0) echo "$DESC is running with the pid `cat $PIDFILE`" rc=0 ;; *) get_running procs=$? if [ $procs -eq 0 ]; then echo -n "$DESC is not running" if [ -f $PIDFILE ]; then echo ", but the pidfile ($PIDFILE) still exists" rc=1 else echo rc=3 fi else echo "$procs instances of jenkins are running at the moment" echo "but the pidfile $PIDFILE is missing" rc=0 fi exit $rc ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac exit 0 jmihalich@ubuntu1804-jm:~$ systemctl daemon-reload ==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon === Authentication is required to reload the systemd state. Authenticating as: Joe Mihalich (jmihalich) Password:********* ==== AUTHENTICATION COMPLETE === jmihalich@ubuntu1804-jm:~$ sudo service jenkins start Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.