diff --git a/gitlab-ci/functional-api-test.sh b/gitlab-ci/functional-api-test.sh
index c09859e86b0ae7ae878b33676dbee76f18bbe4f8..8bd6ed40032787033a5e577444becabddc432089 100755
--- a/gitlab-ci/functional-api-test.sh
+++ b/gitlab-ci/functional-api-test.sh
@@ -1,17 +1,20 @@
 #!/bin/bash
-set -e
+set -euxo pipefail
 echo "Functional API Tests"
 pwd
 
 make coverage -C ./
 
 supervisorctl status all
+cp -a gitlab-ci/supervisord-functional-api.conf /etc/supervisor/conf.d/
 supervisorctl reload
 
 i=0
 while test $i -le 100
 do
-	supervisorctl status wifimngr | grep RUNNING && break
+	if supervisorctl status wifimngr | grep RUNNING; then
+		break
+	fi
 	echo "."
 	sleep 2
 	i=$((i+1))
@@ -22,7 +25,7 @@ supervisorctl status all
 ubus-api-validator -d ./test/api/json/ > ./api-result.log
 
 supervisorctl stop all
-supervisorctl status
+supervisorctl status || true
 
 #report part
 gcovr -r . --xml -o ./api-test-coverage.xml
diff --git a/gitlab-ci/functional-test.sh b/gitlab-ci/functional-test.sh
index d78d2fe480a5c0bc501d9351a6e090f00ac0978b..f1418102b1ed9029fd2c53b72b6d18f0dd6edb31 100755
--- a/gitlab-ci/functional-test.sh
+++ b/gitlab-ci/functional-test.sh
@@ -1,10 +1,11 @@
 #!/bin/bash
 
-set -e
+set -euxo pipefail
 echo "Functional Tests"
 pwd
 
 supervisorctl status all
+cp -a gitlab-ci/supervisord-functional.conf /etc/supervisor/conf.d/
 supervisorctl update
 sleep 3
 supervisorctl status all
@@ -12,7 +13,7 @@ supervisorctl status all
 make functional-test -C ./
 
 supervisorctl stop all
-supervisorctl status
+supervisorctl status || true
 
 #report part
 #GitLab-CI output
diff --git a/gitlab-ci/install-dependencies.sh b/gitlab-ci/install-dependencies.sh
index 5f540ff9ec093bf0d6cbfccd6a1d4eb124703f1b..c114e9694a80b68d5c7c2bb0dd3f2cde3ce6be1d 100755
--- a/gitlab-ci/install-dependencies.sh
+++ b/gitlab-ci/install-dependencies.sh
@@ -1,5 +1,7 @@
 #!/bin/bash
 
+set -euxo pipefail
+
 echo "install dependencies"
 
 pwd
diff --git a/gitlab-ci/setup.sh b/gitlab-ci/setup.sh
index 41b5c2c8fcf0370985e6d52e13838fa65333ca45..1821a6337c650590f95ce53377f672db79be4270 100755
--- a/gitlab-ci/setup.sh
+++ b/gitlab-ci/setup.sh
@@ -1,14 +1,14 @@
 #!/bin/bash
 
+set -euxo pipefail
+
 echo "preparation script"
 
 pwd
 
 cp -r ./test/files/etc/* /etc/
 cp -r ./schemas/ubus/* /usr/share/rpcd/schemas
-cp ./gitlab-ci/iopsys-supervisord.conf /etc/supervisor/conf.d/
 
 ls /etc/config/
 ls /usr/share/rpcd/schemas/
-ls /etc/supervisor/conf.d/
 
diff --git a/gitlab-ci/iopsys-supervisord.conf b/gitlab-ci/supervisord-functional-api.conf
similarity index 100%
rename from gitlab-ci/iopsys-supervisord.conf
rename to gitlab-ci/supervisord-functional-api.conf
diff --git a/gitlab-ci/supervisord-functional.conf b/gitlab-ci/supervisord-functional.conf
new file mode 100644
index 0000000000000000000000000000000000000000..262bba987b3fd241ae30018bb0a0a951aba6253a
--- /dev/null
+++ b/gitlab-ci/supervisord-functional.conf
@@ -0,0 +1,13 @@
+[program:ubusd]
+priority=1
+autorestart=false
+startretries=0
+command=/bin/bash -c "/usr/sbin/ubusd"
+
+[supervisord]
+priority=3
+autorestart=false
+startretries=0
+environment = LIBWIFI_DEBUG_LEVEL=7
+logfile=%(ENV_SUPERVISOR_LOG)s
+loglevel=debug