def METHOD_NAME(self):
    # It is possible for the Tor process to terminate unexpectedly without updating self.tor_daemon_proc
    if not self.is_running():
        return
    if self.tor_daemon_proc:
        # This double approach ensures that the Tor child process is terminated on all levels (within Specter and on the OS level).
        # This seems to be unnecessary for Linux, but it is necessary for MacOS and Windows.
        if platform.system() == "Windows":
            subprocess.run("Taskkill /IM tor.exe /F")
        else:
            cmdline_args = f"{self.tor_daemon_path} --defaults-torrc {self.tor_config_path}"  # Sth. like: ~/.specter/tor-binaries/tor --defaults-torrc ~/.specter/torrc
            subprocess.run(["pkill", "-f", cmdline_args])
        self.tor_daemon_proc.terminate()
        self.tor_daemon_proc = None