diff --git a/end2end-tests/tests/common/mod.rs b/end2end-tests/tests/common/mod.rs
index 1667ff60e4b35bb6c4d68291999c48c3236f78d6..e34982eb5d040f2d5fc26c056b2bccfe27b36dea 100644
--- a/end2end-tests/tests/common/mod.rs
+++ b/end2end-tests/tests/common/mod.rs
@@ -87,6 +87,13 @@ impl Process {
     }
 }
 
+// Do not let the process keep running after the tests ended
+impl Drop for Process {
+    fn drop(&mut self) {
+        self.kill()
+    }
+}
+
 pub const DISTANCE_ORACLE_LOCAL_PATH: &str = "../target/debug/distance-oracle";
 const DUNITER_DOCKER_PATH: &str = "/usr/local/bin/duniter";
 const DUNITER_LOCAL_PATH: &str = "../target/debug/duniter";
diff --git a/end2end-tests/tests/cucumber_tests.rs b/end2end-tests/tests/cucumber_tests.rs
index f706b170dae09fbaed0ced5ac8ffdbf43fa4cd02..dcb7d842bd593e19103928724a820aa272b45edd 100644
--- a/end2end-tests/tests/cucumber_tests.rs
+++ b/end2end-tests/tests/cucumber_tests.rs
@@ -613,7 +613,7 @@ async fn main() {
             if keep_running {
                 while running.load(Ordering::SeqCst) {}
             }
-
+            // Early kill (not waiting destructor) to save CPU/memory
             if let Some(world) = maybe_world {
                 world.kill();
             }