diff --git a/package/gluon-core/files/lib/gluon/reload.d/500-core b/package/gluon-core/files/lib/gluon/reload.d/500-core
new file mode 100755
index 0000000000000000000000000000000000000000..bc8640877f221a7bc153f77fa916ad42b8f9a1a4
--- /dev/null
+++ b/package/gluon-core/files/lib/gluon/reload.d/500-core
@@ -0,0 +1,2 @@
+#!/bin/sh
+/etc/init.d/network restart
diff --git a/package/gluon-core/files/usr/bin/gluon-reload b/package/gluon-core/files/usr/bin/gluon-reload
new file mode 100755
index 0000000000000000000000000000000000000000..805f42013df3f87d94f2828f4cdce3ce6728008b
--- /dev/null
+++ b/package/gluon-core/files/usr/bin/gluon-reload
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+cd "/lib/gluon/reload.d" || exit 1
+
+err=0
+
+for script in *; do
+	echo "Reloading: ${script}"
+	./"$script" || err=1
+done
+
+if [ $err -eq 1 ]; then
+	echo 'One or more daemons failed to reload.' >&2
+	exit 1
+fi
+
+exit 0
diff --git a/package/gluon-mesh-vpn-fastd/files/lib/gluon/reload.d/200-mesh-vpn-fastd-stop b/package/gluon-mesh-vpn-fastd/files/lib/gluon/reload.d/200-mesh-vpn-fastd-stop
new file mode 100755
index 0000000000000000000000000000000000000000..9e860c40529c1e0d9692a19fa195838e29cf722d
--- /dev/null
+++ b/package/gluon-mesh-vpn-fastd/files/lib/gluon/reload.d/200-mesh-vpn-fastd-stop
@@ -0,0 +1,2 @@
+#!/bin/sh
+/etc/init.d/fastd stop
diff --git a/package/gluon-mesh-vpn-fastd/files/lib/gluon/reload.d/800-mesh-vpn-fastd-start b/package/gluon-mesh-vpn-fastd/files/lib/gluon/reload.d/800-mesh-vpn-fastd-start
new file mode 100755
index 0000000000000000000000000000000000000000..e8aad1e6ef6ad118346ae27afca5941f22b82df9
--- /dev/null
+++ b/package/gluon-mesh-vpn-fastd/files/lib/gluon/reload.d/800-mesh-vpn-fastd-start
@@ -0,0 +1,2 @@
+#!/bin/sh
+/etc/init.d/fastd start
diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/reload.d/200-mesh-vpn-tunneldigger-stop b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/reload.d/200-mesh-vpn-tunneldigger-stop
new file mode 100755
index 0000000000000000000000000000000000000000..651530b260410c35d95b03ee59eecaa8c61f7e83
--- /dev/null
+++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/reload.d/200-mesh-vpn-tunneldigger-stop
@@ -0,0 +1,2 @@
+#!/bin/sh
+/etc/init.d/tunneldigger stop
diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/reload.d/800-mesh-vpn-tunneldigger-start b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/reload.d/800-mesh-vpn-tunneldigger-start
new file mode 100755
index 0000000000000000000000000000000000000000..9b174f178b530c6e759603e2ca62ff8c84955503
--- /dev/null
+++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/reload.d/800-mesh-vpn-tunneldigger-start
@@ -0,0 +1,2 @@
+#!/bin/sh
+/etc/init.d/tunneldigger start
diff --git a/package/gluon-respondd/files/lib/gluon/reload.d/100-respondd-stop b/package/gluon-respondd/files/lib/gluon/reload.d/100-respondd-stop
new file mode 100755
index 0000000000000000000000000000000000000000..f728323878b7d7fed76c493f8788791428a04003
--- /dev/null
+++ b/package/gluon-respondd/files/lib/gluon/reload.d/100-respondd-stop
@@ -0,0 +1,2 @@
+#!/bin/sh
+/etc/init.d/gluon-respondd stop
diff --git a/package/gluon-respondd/files/lib/gluon/reload.d/900-respondd-start b/package/gluon-respondd/files/lib/gluon/reload.d/900-respondd-start
new file mode 100755
index 0000000000000000000000000000000000000000..3890bd77a3591e81fdc9ef28d9c51a6d9bfcf2e0
--- /dev/null
+++ b/package/gluon-respondd/files/lib/gluon/reload.d/900-respondd-start
@@ -0,0 +1,2 @@
+#!/bin/sh
+/etc/init.d/gluon-respondd start