diff --git a/src/background.js b/src/background.js
index 15f62b9..a2bb071 100644
--- a/src/background.js
+++ b/src/background.js
@@ -1,15 +1,35 @@
 // IMPORTANT: keep this file in sync with sw.js
-import {cleanUpOptions} from './common/optionsUtils.js'
-
-// When the extension gets updated, set new options to their default value.
-chrome.runtime.onInstalled.addListener(function(details) {
-  if (details.reason == 'install' || details.reason == 'update') {
-    chrome.storage.sync.get(null, function(options) {
-      cleanUpOptions(options, false);
-    });
-  }
-});
+import {cleanUpOptions} from './common/optionsUtils.js';
+import KillSwitchMechanism from './killSwitch/index.js';
 
 chrome.browserAction.onClicked.addListener(function() {
   chrome.runtime.openOptionsPage();
 });
+
+const killSwitchMechanism = new KillSwitchMechanism();
+
+chrome.alarms.create('updateKillSwitchStatus', {
+  periodInMinutes: PRODUCTION ? 30 : 1,
+});
+
+chrome.alarms.onAlarm.addListener(alarm => {
+  if (alarm.name === 'updateKillSwitchStatus')
+    killSwitchMechanism.updateKillSwitchStatus();
+});
+
+// When the profile is first started, update the kill switch status.
+chrome.runtime.onStartup.addListener(() => {
+  killSwitchMechanism.updateKillSwitchStatus();
+});
+
+// When the extension is first installed or gets updated, set new options to
+// their default value and update the kill switch status.
+chrome.runtime.onInstalled.addListener(details => {
+  if (details.reason == 'install' || details.reason == 'update') {
+    chrome.storage.sync.get(null, options => {
+      cleanUpOptions(options, false);
+    });
+
+    killSwitchMechanism.updateKillSwitchStatus();
+  }
+});
