diff --git a/rules.rules.events.yml b/rules.rules.events.yml
index af45f882..8cfc83c5 100644
--- a/rules.rules.events.yml
+++ b/rules.rules.events.yml
@@ -1,23 +1,13 @@
-rules_user_login:
-  label: 'User has logged in'
-  category: 'User'
-  context_definitions:
-    account:
-      type: 'entity:user'
-      label: 'Logged in user'
-rules_user_logout:
-  label: 'User has logged out'
-  category: 'User'
-  context_definitions:
-    account:
-      type: 'entity:user'
-      label: 'Logged out user'
 kernel.request:
   label: 'Drupal is initializing'
   category: 'System'
   # @todo Should this event have the request as context? Should we define a
   # request data type?
   help: "Be aware that some actions might initialize the theme system. After that, it's impossible for any module to change the used theme."
+kernel.terminate:
+  label: 'Drupal is terminating'
+  category: 'System'
+
 rules_entity_presave:
   label: 'Before saving an entity'
   deriver: '\Drupal\rules\Plugin\RulesEvent\EntityPresaveDeriver'
@@ -49,3 +39,18 @@ rules_system_logger_event:
     logger_entry:
       type: 'any'
       label: 'Logger entry'
+
+rules_user_login:
+  label: 'User has logged in'
+  category: 'User'
+  context_definitions:
+    account:
+      type: 'entity:user'
+      label: 'Logged in user'
+rules_user_logout:
+  label: 'User has logged out'
+  category: 'User'
+  context_definitions:
+    account:
+      type: 'entity:user'
+      label: 'Logged out user'
diff --git a/tests/src/Kernel/EventIntegrationTest.php b/tests/src/Kernel/EventIntegrationTest.php
index 2d8e78c3..4fce0374 100644
--- a/tests/src/Kernel/EventIntegrationTest.php
+++ b/tests/src/Kernel/EventIntegrationTest.php
@@ -184,6 +184,40 @@ class EventIntegrationTest extends RulesKernelTestBase {
     $this->assertRulesDebugLogEntryExists('action called');
   }
 
+  /**
+   * Test that Drupal terminating triggers the Rules debug logger listener.
+   */
+  public function testTerminateEvent() {
+    $rule = $this->expressionManager->createRule();
+    $rule->addCondition('rules_test_true');
+    $rule->addAction('rules_test_debug_log');
+
+    $config_entity = $this->storage->create([
+      'id' => 'test_rule',
+      'events' => [['event_name' => KernelEvents::TERMINATE]],
+      'expression' => $rule->getConfiguration(),
+    ]);
+    $config_entity->save();
+
+    // The logger instance has changed, refresh it.
+    $this->logger = $this->container->get('logger.channel.rules_debug');
+
+    $dispatcher = $this->container->get('event_dispatcher');
+
+    // Remove all the listeners except Rules before triggering an event.
+    $listeners = $dispatcher->getListeners(KernelEvents::TERMINATE);
+    foreach ($listeners as $listener) {
+      if (empty($listener[1]) || $listener[1] != 'onRulesEvent') {
+        $dispatcher->removeListener(KernelEvents::TERMINATE, $listener);
+      }
+    }
+    // Manually trigger the initialization event.
+    $dispatcher->dispatch(KernelEvents::TERMINATE);
+
+    // Test that the action in the rule logged something.
+    $this->assertRulesDebugLogEntryExists('action called');
+  }
+
   /**
    * Test that rules config supports multiple events.
    */
