diff --git a/roles/build/templates/misp/supervisord.conf.j2 b/roles/build/files/mispsupervisord.conf
similarity index 72%
rename from roles/build/templates/misp/supervisord.conf.j2
rename to roles/build/files/mispsupervisord.conf
index ee1e0c4121b352d854d1e26f7bb67d917688ce85..fce59b7aa8a838bd76824961dd7f881062460563 100644
--- a/roles/build/templates/misp/supervisord.conf.j2
+++ b/roles/build/files/mispsupervisord.conf
@@ -47,7 +47,7 @@ autostart=false
 autorestart=true
 
 [program:misp-modules]
-command=/bin/bash -c "/usr/local/bin/misp-modules -l '0.0.0.0' -s"
+command=/bin/bash -c "/usr/local/bin/misp-modules -l '0.0.0.0' -s && sleep infinity"
 user = apache
 autostart=false
 autorestart=unexpected
@@ -59,7 +59,7 @@ stderr_logfile = /var/log/supervisor/misp-modules_stderr.log
 stdout_logfile = /var/log/supervisor/misp-modules_stdout.log
 
 [program:workers]
-command=/bin/bash /var/www/MISP/app/Console/worker/start.sh
+command=/bin/bash -c "cleanup() { /var/www/MISP/app/Console/worker/stop.sh; }; trap 'echo signal received!; kill ${child_pid}; wait ${child_pid}; cleanup' SIGINT SIGTERM; /var/www/MISP/app/Console/worker/start.sh; sleep infinity & child_pid=$!; wait ${child_pid};"
 user=apache
 autostart=false
 autorestart=unexpected
@@ -68,3 +68,16 @@ stdout_logfile_backups = 0
 stderr_logfile_backups = 0
 stderr_logfile = /var/log/supervisor/workers_stderr.log
 stdout_logfile = /var/log/supervisor/workers_stdout.log
+
+[program:filebeat]
+directory=/opt/filebeat
+user=root
+group=root
+command=/bin/bash -c '/opt/filebeat/filebeat -c /opt/filebeat/filebeat.yml'
+autostart=false
+autorestart=true
+logfile_maxbytes=10MB
+stdout_logfile_backups = 0
+stderr_logfile_backups = 0
+stderr_logfile = /var/log/supervisor/filebeat_stderr.log
+stdout_logfile = /var/log/supervisor/filebeat_stdout.log
diff --git a/roles/build/templates/mysql/supervisord.conf.j2 b/roles/build/files/mysqlsupervisord.conf
similarity index 72%
rename from roles/build/templates/mysql/supervisord.conf.j2
rename to roles/build/files/mysqlsupervisord.conf
index 78258b5d95c5c4079212fe72ac7e8c818443def0..60d3109fc26d3b20de3d811482d1f6f2f2ed6a89 100644
--- a/roles/build/templates/mysql/supervisord.conf.j2
+++ b/roles/build/files/mysqlsupervisord.conf
@@ -31,3 +31,15 @@ stderr_logfile_backups = 0
 stderr_logfile = /var/log/supervisor/cron_stderr.log
 stdout_logfile = /var/log/supervisor/cron_stdout.log
 
+[program:filebeat]
+directory=/opt/filebeat
+user=root
+group=root
+command=/bin/bash -c '/opt/filebeat/filebeat -c /opt/filebeat/filebeat.yml'
+autostart=false
+autorestart=true
+logfile_maxbytes=10MB
+stdout_logfile_backups = 0
+stderr_logfile_backups = 0
+stderr_logfile = /var/log/supervisor/filebeat_stderr.log
+stdout_logfile = /var/log/supervisor/filebeat_stdout.log
diff --git a/roles/build/tasks/misp.yml b/roles/build/tasks/misp.yml
index d52c39c7d0292a5b6285fbc23220b3cf33be422d..3bfe7c9d9a9757db78964597dbfa4c3bff6aeacf 100644
--- a/roles/build/tasks/misp.yml
+++ b/roles/build/tasks/misp.yml
@@ -5,11 +5,6 @@
     src: misp/Dockerfile.j2
     dest: "{{role_path}}/files/mispDockerfile"
 
-- name: Configure the misp supervisor
-  template:
-    src: misp/supervisord.conf.j2
-    dest: "{{role_path}}/files/mispsupervisord.conf"
-
 - name: Configure the misp worker startscript
   template:
     src: misp/start.sh.j2
diff --git a/roles/build/tasks/mysql.yml b/roles/build/tasks/mysql.yml
index a0281907e39a5f8aaa59648b8eae0b90ce968f58..75d9625f8e906d5ad6884120c21f3c76629f9141 100644
--- a/roles/build/tasks/mysql.yml
+++ b/roles/build/tasks/mysql.yml
@@ -5,11 +5,6 @@
     src: mysql/Dockerfile.j2
     dest: "{{role_path}}/files/mysqlDockerfile"
 
-- name: Configure the mysql supervisor
-  template:
-    src: mysql/supervisord.conf.j2
-    dest: "{{role_path}}/files/mysqlsupervisord.conf"
-
 - name: Build mysql image
   command: docker build -t {{repo}}/mysql:{{version}}{{suffix}} -f {{role_path}}/files/mysqlDockerfile {{role_path}}/files
 
diff --git a/roles/build/templates/misp/Dockerfile.j2 b/roles/build/templates/misp/Dockerfile.j2
index 28f5bc8145229e61c1d5b9f5a441da2583680628..e8637f846b31a3f9437c2fa7b45befe79471c96b 100644
--- a/roles/build/templates/misp/Dockerfile.j2
+++ b/roles/build/templates/misp/Dockerfile.j2
@@ -85,4 +85,3 @@ ENV PATH "$PATH:/opt/rh/rh-php72/root/bin/"
 
 COPY mispsupervisord.conf /etc/supervisord.conf
 ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
-#ENTRYPOINT ["/bin/bash"]
diff --git a/roles/cassandra/tasks/main.yml b/roles/cassandra/tasks/main.yml
index b5dfeb4677a946f5637309ffc143f259685b7e3d..814355e709956d46c421029590b8d65bf61cb2be 100644
--- a/roles/cassandra/tasks/main.yml
+++ b/roles/cassandra/tasks/main.yml
@@ -24,6 +24,11 @@
   tags:
     - start
 
+- name: Set Autostart for supervisord's services
+  shell: "sed -i 's/autostart=false/autostart=true/g' /etc/supervisord.conf"
+  tags:
+    - start
+
 - name: Stop Cassandra
   remote_user: root
   command: "supervisorctl stop cassandra"
diff --git a/roles/cortex/tasks/main.yml b/roles/cortex/tasks/main.yml
index bcc93356e0b457e0f4de25239cf026cac2e97788..0c150c2d77aceeed67d702cd02f85b26ebff0504 100644
--- a/roles/cortex/tasks/main.yml
+++ b/roles/cortex/tasks/main.yml
@@ -75,6 +75,11 @@
     - start
     - startcortex
 
+- name: Set Autostart for supervisord's services
+  shell: "sed -i 's/autostart=false/autostart=true/g' /etc/supervisord.conf"
+  tags:
+    - start
+
 - name: Stop Elasticsearch
   remote_user: root
   command: "supervisorctl stop elasticsearch"
diff --git a/roles/docker/tasks/misp.yml b/roles/docker/tasks/misp.yml
index 22042b5c238b5f342c1e2a93f1053f9d9cbf8ff0..f32e440eeff7e9d8c1406cf76bafde97aaba19d0 100644
--- a/roles/docker/tasks/misp.yml
+++ b/roles/docker/tasks/misp.yml
@@ -7,7 +7,6 @@
     image: "{{ misp_img }}"
     networks:
       - name: "{{ soctools_netname}}"
-    entrypoint: "/bin/bash"
     interactive: "yes"
     networks_cli_compatible: yes
     published_ports:
diff --git a/roles/filebeat/tasks/main.yml b/roles/filebeat/tasks/main.yml
index 04e41e13116bf3a4d069bd2db3e3270db39c0587..1c17549beab48f2b25a4d28e31a99cb80c4af2f4 100644
--- a/roles/filebeat/tasks/main.yml
+++ b/roles/filebeat/tasks/main.yml
@@ -22,8 +22,8 @@
     - start
 
 - name: Start filebeat
-  shell: "daemonize -c / -p /filebeat.pid -l /filebeat.lock /opt/filebeat/filebeat -c /opt/filebeat/filebeat.yml"
-  become: true
+  remote_user: root
+  shell: "supervisorctl restart filebeat"
   ignore_errors: yes
   tags:
     - start
diff --git a/roles/keycloak/tasks/main.yml b/roles/keycloak/tasks/main.yml
index 41a832c1992542b6cdf480d2eb1b8a996c6c067a..f061ebc61bdf19b413828fcce4aa0d2e83f71973 100644
--- a/roles/keycloak/tasks/main.yml
+++ b/roles/keycloak/tasks/main.yml
@@ -113,6 +113,11 @@
   tags:
     - start
 
+- name: Set Autostart for supervisord's services
+  shell: "sed -i 's/autostart=false/autostart=true/g' /etc/supervisord.conf"
+  tags:
+    - start
+
 - name: Stop Keycloak
   remote_user: root
   command: "supervisorctl stop keycloak"
diff --git a/roles/misp/tasks/config.yml b/roles/misp/tasks/config.yml
index 52bfaac96d8de021dd493fc69ebb5c42da1f0dce..1628108448c0361f2f5f2f346537654edcfc48bb 100644
--- a/roles/misp/tasks/config.yml
+++ b/roles/misp/tasks/config.yml
@@ -63,3 +63,6 @@
   with_items:
     - fetchFeed
     - cacheFeed
+
+- name: Set Autostart for supervisord's services
+  shell: "sed -i 's/autostart=false/autostart=true/g' /etc/supervisord.conf"
diff --git a/roles/misp/tasks/start.yml b/roles/misp/tasks/start.yml
index fca3a0c316579766049f3d6ec23ec7c3b7931910..047dc1016d0c62ae898f9b277dc0d6ea2bbdad68 100644
--- a/roles/misp/tasks/start.yml
+++ b/roles/misp/tasks/start.yml
@@ -57,8 +57,17 @@
 - name: Check if database is initialized
   command: /var/www/MISP/checkdb.sh
 
-- name: Start supervisord
-  shell: "/usr/bin/supervisord -c /etc/supervisord.conf &"
+- name: Start php-fpm
+  command: "supervisorctl start php-fpm"
 
-- name: Start MISP Services
-  command: "supervisorctl start all"
+- name: Start redis-server
+  command: "supervisorctl start redis-server"
+
+- name: Start apache2
+  command: "supervisorctl start apache2"
+
+- name: Start misp-modules
+  command: "supervisorctl start misp-modules"
+
+- name: Start workers
+  command: "supervisorctl start workers"
diff --git a/roles/misp/tasks/stop.yml b/roles/misp/tasks/stop.yml
index ed97d539c095cf1413af30cc23dea272095b97dd..6a56d87d74255095f17ca8ac2db562596446f586 100644
--- a/roles/misp/tasks/stop.yml
+++ b/roles/misp/tasks/stop.yml
@@ -1 +1,17 @@
 ---
+- name: Stop php-fpm
+  command: "supervisorctl stop php-fpm"
+
+- name: Stop redis-server
+  command: "supervisorctl stop redis-server"
+
+- name: Stop apache2
+  command: "supervisorctl stop apache2"
+
+- name: Stop misp-modules
+  command: "supervisorctl stop misp-modules"
+
+- name: Stop workers
+  #command: "supervisorctl start workers"
+  command: 'su - -s /bin/bash -c "/var/www/MISP/app/Console/worker/stop.sh" apache'
+
diff --git a/roles/mysql/tasks/misp.yml b/roles/mysql/tasks/misp.yml
index b3262fcc10144feeb4dbd8b6c0934ee4c735054c..7c9cc2027e58bf4ff8ea538c821d77486c491267 100644
--- a/roles/mysql/tasks/misp.yml
+++ b/roles/mysql/tasks/misp.yml
@@ -18,6 +18,11 @@
   tags:
     - start
 
+- name: Set Autostart for supervisord's services
+  shell: "sed -i 's/autostart=false/autostart=true/g' /etc/supervisord.conf"
+  tags:
+    - start
+
 
 #  CREATE DATABASE IF NOT EXISTS {{misp_dbname}};
 #  {% for misp_host in groups['mispcontainers'] %}
diff --git a/roles/thehive/tasks/main.yml b/roles/thehive/tasks/main.yml
index 3a11515fb8daa50ddda5406bbaf1af93bd21275d..b9ed5b556d84247e796a26e2718a3515312a3a5c 100644
--- a/roles/thehive/tasks/main.yml
+++ b/roles/thehive/tasks/main.yml
@@ -24,6 +24,11 @@
   tags:
     - start
 
+- name: Set Autostart for supervisord's services
+  shell: "sed -i 's/autostart=false/autostart=true/g' /etc/supervisord.conf"
+  tags:
+    - start
+
 - name: Stop TheHive
   remote_user: root
   command: "supervisorctl stop thehive"