diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Monit/forms/services.xml b/src/opnsense/mvc/app/controllers/OPNsense/Monit/forms/services.xml
index 5b2b44c1a..30c65eaf9 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Monit/forms/services.xml
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Monit/forms/services.xml
@@ -72,6 +72,12 @@
select_multiple
+
+ monit.service.depends
+
+ select_multiple
+
+
monit.service.description
diff --git a/src/opnsense/mvc/app/models/OPNsense/Monit/Monit.xml b/src/opnsense/mvc/app/models/OPNsense/Monit/Monit.xml
index c4fb4f558..5603268b5 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Monit/Monit.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Monit/Monit.xml
@@ -256,6 +256,18 @@
Y
N
+
+
+
+ OPNsense.monit.monit
+ service
+ name
+
+
+ Related item not found
+ Y
+ N
+
diff --git a/src/opnsense/mvc/app/views/OPNsense/Monit/index.volt b/src/opnsense/mvc/app/views/OPNsense/Monit/index.volt
index 184d2bd2f..c7febc420 100644
--- a/src/opnsense/mvc/app/views/OPNsense/Monit/index.volt
+++ b/src/opnsense/mvc/app/views/OPNsense/Monit/index.volt
@@ -201,6 +201,7 @@ POSSIBILITY OF SUCH DAMAGE.
$('tr[id="row_monit.service.interface"]').addClass('hidden');
$('tr[id="row_monit.service.start"]').removeClass('hidden');
$('tr[id="row_monit.service.stop"]').removeClass('hidden');
+ $('tr[id="row_monit.service.depends"]').removeClass('hidden');
switch (servicetype) {
case 'process':
var pidfile = $('#monit\\.service\\.pidfile').val();
@@ -236,6 +237,7 @@ POSSIBILITY OF SUCH DAMAGE.
case 'system':
$('tr[id="row_monit.service.start"]').addClass('hidden');
$('tr[id="row_monit.service.stop"]').addClass('hidden');
+ $('tr[id="row_monit.service.depends"]').addClass('hidden');
break;
default:
$('tr[id="row_monit.service.path"]').removeClass('hidden');
diff --git a/src/opnsense/service/templates/OPNsense/Monit/monitrc b/src/opnsense/service/templates/OPNsense/Monit/monitrc
index bfb66e185..26fe3b8a0 100644
--- a/src/opnsense/service/templates/OPNsense/Monit/monitrc
+++ b/src/opnsense/service/templates/OPNsense/Monit/monitrc
@@ -128,6 +128,12 @@ check program {{ service.name }} {{ path }} {{ timeout }}
check {{ service.type }} {{ service.name }} {{ path }}
{% endif %}
{% endif %}
+{% if service.depends is defined %}
+{% for dependency in service.depends.split(",") %}
+{% set dependency = helpers.getUUID(dependency) %}
+ depends on {{dependency.name}}
+{% endfor %}
+{% endif %}
{% if service.start|default('') != '' %}
start program = "{{ service.start }}"
{% endif %}