class StopServerJob < ApplicationJob queue_as :default def perform(server_id) server = Server.find(server_id) log "Stopping server: #{server.name}" begin log "Calling SystemdManager.stop..." L4dServer::SystemdManager.stop(server) log "SystemdManager.stop completed successfully" server.update(status: :stopped) log "Server status updated to stopped" Activity.log(server.user, "stopped", "Server", server.id, {}) log "Activity logged" rescue StandardError => e log "ERROR: Failed to stop server: #{e.message}" log "Backtrace: #{e.backtrace.first(3).join("\n")}" Activity.log(server.user, "stop_failed", "Server", server.id, { error: e.message }) raise end end end