Index: /trunk/src/VBox/Main/UnattendedTemplates/debian_postinstall.sh
===================================================================
--- /trunk/src/VBox/Main/UnattendedTemplates/debian_postinstall.sh	(revision 68083)
+++ /trunk/src/VBox/Main/UnattendedTemplates/debian_postinstall.sh	(revision 68084)
@@ -31,7 +31,12 @@
     echo "** Executing: $*" >> "${MY_LOGFILE}"
     "$@" 2>&1 | tee -a "${MY_LOGFILE}"
-    if [ "${PIPESTATUS[0]}" != "0" ]; then
-        echo "exit code: ${PIPESTATUS[0]}"
-        MY_EXITCODE=1;
+    MY_TMP_EXITCODE="${PIPESTATUS[0]}"
+    if [ "${MY_TMP_EXITCODE}" != "0" ]; then
+        if [ "${MY_TMP_EXITCODE}" != "${MY_IGNORE_EXITCODE}" ]; then
+            echo "** exit code: ${MY_TMP_EXITCODE}" | tee -a "${MY_LOGFILE}"
+            MY_EXITCODE=1;
+        else
+            echo "** exit code: ${MY_TMP_EXITCODE} (ignored)" | tee -a "${MY_LOGFILE}"
+        fi
     fi
 }
@@ -47,6 +52,4 @@
     # script (see below) and just use chroot here.
     #
-    # Also, GA installer and in-root/log-output doesn't seem to get along.
-    #
     log_command chroot "${MY_TARGET}" "$@"
     # log_command in-target --pass-stdout "$@" # No stderr output... :-(
@@ -78,19 +81,6 @@
 
 #
-# Debug
-#
-if [ "${MY_DEBUG}" = "yes" ]; then
-    log_command id
-    log_command df
-    log_command mount
-    log_command_in_target df
-    log_command_in_target mount
-    log_command_in_target ls -Rla /cdrom
-    log_command_in_target ls -Rla /media
-    log_command find /
-    MY_EXITCODE=0
-fi
-
 # We want the ISO available inside the target jail.
+#
 if [ -f "${MY_TARGET}/cdrom/vboxpostinstall.sh" ]; then
     MY_UNMOUNT_TARGET_CDROM=
@@ -110,4 +100,17 @@
 
 #
+# Debug
+#
+if [ "${MY_DEBUG}" = "yes" ]; then
+    log_command id
+    log_command df
+    log_command mount
+    log_command_in_target df
+    log_command_in_target mount
+    log_command find /
+    MY_EXITCODE=0
+fi
+
+#
 # Packages needed for GAs.
 #
@@ -121,15 +124,55 @@
 @@VBOX_COND_IS_INSTALLING_ADDITIONS@@
 echo '** Installing VirtualBox Guest Additions...' | tee -a "${MY_LOGFILE}"
+MY_IGNORE_EXITCODE=2  # returned if modules already loaded and reboot required.
 log_command_in_target /bin/bash /cdrom/vboxadditions/VBoxLinuxAdditions.run --nox11
+MY_IGNORE_EXITCODE=
 log_command_in_target usermod -a -G vboxsf "@@VBOX_INSERT_USER_LOGIN@@"
 @@VBOX_COND_END@@
 
 #
-# Testing.
+# Test Execution Service.
 #
 @@VBOX_COND_IS_INSTALLING_TEST_EXEC_SERVICE@@
 echo '** Installing Test Execution Service...' | tee -a "${MY_LOGFILE}"
-log_command_in_target test "/cdrom/linux/@@VBOX_INSERT_OS_ARCH@@/TestExecService"
-## @todo fix this
+log_command_in_target test "/cdrom/vboxvalidationkit/linux/@@VBOX_INSERT_OS_ARCH@@/TestExecService"
+log_command mkdir -p "${MY_TARGET}/root/validationkit" "${MY_TARGET}/target/cdrom"
+log_command cp -R /cdrom/vboxvalidationkit/* "${MY_TARGET}/root/validationkit/"
+log_command chmod -R u+rw,a+xr "${MY_TARGET}/root/validationkit/"
+
+# systemd service config:
+MY_UNIT_PATH="${MY_TARGET}/lib/systemd/system"
+test -d "${MY_TARGET}/usr/lib/systemd/system" && MY_UNIT_PATH="${MY_TARGET}/usr/lib/systemd/system"
+if [ -d "${MY_UNIT_PATH}" ]; then
+    if [  -f "${MY_TARGET}/linux/vboxtxs.service" ]; then ## REMOVE AS SOON AS r117117 IS READY
+        log_command cp "${MY_TARGET}/linux/vboxtxs.service" "${MY_UNIT_PATH}/vboxtxs.service"
+    else                                                  ## REMOVE AS SOON AS r117117 IS READY
+        cat > "${MY_UNIT_PATH}/vboxtxs.service" <<EOF
+[Unit]
+Description=VirtualBox Test Execution Service
+SourcePath=/root/validationkit/linux/vboxtxs
+
+[Service]
+Type=forking
+Restart=no
+TimeoutSec=5min
+IgnoreSIGPIPE=no
+KillMode=process
+GuessMainPID=no
+RemainAfterExit=yes
+ExecStart=/root/validationkit/linux/vboxtxs start
+ExecStop=/root/validationkit/linux/vboxtxs stop
+
+[Install]
+WantedBy=multi-user.target
+EOF
+    fi
+    log_command chmod 755 "${MY_UNIT_PATH}/vboxtxs.service"
+    log_command_in_target systemctl -q enable vboxtxs
+
+# Not systemd.  Add support for upstart later...
+else
+    echo "** error: No systemd unit dir found.  Using upstart or something?" | tee -a "${MY_LOGFILE}"
+fi
+
 @@VBOX_COND_END@@
 
