fix: Tor toggle tries systemd before container restart

The toggle handler only tried `podman restart archy-tor` which fails
on servers running Tor as a systemd service. Now tries
`systemctl restart tor` first (like the rotation handler already does),
falling back to container restart.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dorian 2026-03-16 17:41:32 +00:00
parent 2e753c8d70
commit c02ce36f69

View File

@ -330,15 +330,24 @@ impl RpcHandler {
info!(app = app_id, "Disabled Tor access — removed hidden service dir"); info!(app = app_id, "Disabled Tor access — removed hidden service dir");
} }
// Restart archy-tor to apply changes // Restart Tor to apply changes — try system service first, then container
let status = tokio::process::Command::new("sudo") let system_ok = tokio::process::Command::new("sudo")
.args(["podman", "restart", "archy-tor"]) .args(["systemctl", "restart", "tor"])
.status() .status()
.await .await
.context("Failed to restart archy-tor")?; .map(|s| s.success())
.unwrap_or(false);
if !status.success() { if !system_ok {
warn!("archy-tor restart failed after toggle"); let container_ok = tokio::process::Command::new("sudo")
.args(["podman", "restart", "archy-tor"])
.status()
.await
.map(|s| s.success())
.unwrap_or(false);
if !container_ok {
warn!("Failed to restart Tor after toggle");
}
} }
// If enabling, wait for hostname to appear // If enabling, wait for hostname to appear