diff --git a/radius-client/templates/networkd-override.conf.j2 b/radius-client/templates/networkd-override.conf.j2
index f61ae973a164f9b26fc37636efcac9330385ba2b..5aa7a75c7cc35a52a5bd64e262a058b1554af23f 100644
--- a/radius-client/templates/networkd-override.conf.j2
+++ b/radius-client/templates/networkd-override.conf.j2
@@ -1,2 +1,2 @@
 [Service]
-ExecStartPre=/usr/local/bin/wpa_wait.sh
+ExecStartPre=+/usr/local/bin/wpa_wait.sh
diff --git a/radius-client/templates/wpa_wait.sh.j2 b/radius-client/templates/wpa_wait.sh.j2
index 32009259ca5896d07bee6f846f1650b5ce8581f5..939f19675052b02eee2dbb16811523be7e7bfd9b 100755
--- a/radius-client/templates/wpa_wait.sh.j2
+++ b/radius-client/templates/wpa_wait.sh.j2
@@ -1,7 +1,6 @@
-#!/bin/bash
+#!/bin/sh
 {% if radius_client_wait %}
-journalctl -u wpa_supplicant-wired@{{ ansible_default_ipv4.interface }} -b | tail -n1 | grep CONNECTED
-while [ $? == 1 ]; do
-	journalctl -u wpa_supplicant-wired@{{ ansible_default_ipv4.interface }} -b | tail -n1 | grep CONNECTED
+while ! wpa_cli -i {{ ansible_default_ipv4.interface }} status | grep -q "wpa_state=COMPLETED"; do
+    sleep 1
 done
 {% endif %}