diff --git a/wireguard/service/clean.sls b/wireguard/service/clean.sls
index 9e6290d..557fa69 100644
--- a/wireguard/service/clean.sls
+++ b/wireguard/service/clean.sls
@@ -16,15 +16,21 @@ wireguard-service-clean-service-dead-{{ interface }}:
 {%- endif %}
 
 {%-  if grains['os_family'] == 'FreeBSD' %}
-wireguard-service-clean-service-dead:
-  service.dead:
+wireguard-service-clean-service-disabled:
+  service.disabled:
     - name: {{ wireguard.service.name }}
-    - sig: wireguard-go
-    - enable: False
+
+wireguard-service-clean-service-dead:
+  cmd.run:
+    - name: service {{ wireguard.service.name }} onestop
+    - onlyif: service {{ wireguard.service.name }} onestatus
+    - require:
+      - service: wireguard-service-clean-service-disabled
 
 wireguard-service-clean-sysrc-absent:
   sysrc.absent:
     - name: wireguard_interfaces
     - require:
-      - service: wireguard-service-clean-service-dead
+      - service: wireguard-service-clean-service-disabled
+      - cmd: wireguard-service-clean-service-dead
 {%- endif %}
diff --git a/wireguard/service/running.sls b/wireguard/service/running.sls
index 5551c8f..f9e8ba0 100644
--- a/wireguard/service/running.sls
+++ b/wireguard/service/running.sls
@@ -30,13 +30,25 @@ wireguard-service-running-sysrc-managed:
     - name: wireguard_interfaces
     - value: "{{ interfaces|join(' ') }}"
 
-wireguard-service-running-service-running:
-  service.running:
+wireguard-service-running-service-enabled:
+  service.enabled:
     - name: {{ wireguard.service.name }}
-    - sig: wireguard-go
-    - enable: True
     - watch:
       - sysrc: wireguard-service-running-sysrc-managed
+
+wireguard-service-running-service-running-trigger:
+  cmd.run:
+    - name: /bin/sh -c 'exit 0'
+    - unless: service {{ wireguard.service.name }} onestatus
+
+wireguard-service-running-service-running:
+  cmd.run:
+    # Close file descriptors so we don't end up with a <defuct> process
+    - name: sh -c "service {{ wireguard.service.name }} onerestart 0<&- >/dev/null 2>&1"
+    - onchanges:
+      - sysrc: wireguard-service-running-sysrc-managed
+      - service: wireguard-service-running-service-enabled
+      - cmd: wireguard-service-running-service-running-trigger
       - sls: {{ sls_config_file }}
 {%-   for interface in interfaces %}
       - file: wireguard-config-file-interface-{{ interface }}-config