blob: 8c0c129c2d3ae1b65a61f4e0e71d86cad786fbcb [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#!/bin/sh /etc/rc.common
2
3START=99
4USE_PROCD=1
5PROG=/usr/bin/domoticz
6PIDFILE=/var/run/domoticz.pid
7
8start_domoticz() {
9 local section="$1"
10 local loglevel sslcert sslpass sslwww syslog userdata
11
12 config_get loglevel "$section" "loglevel"
13 config_get sslcert "$section" "sslcert"
14 config_get sslkey "$section" "sslkey"
15 config_get sslpass "$section" "sslpass"
16 config_get ssldhparam "$section" "ssldhparam"
17 config_get sslwww "$section" "sslwww"
18 config_get syslog "$section" "syslog"
19 config_get userdata "$section" "userdata" userdata /var/lib/domoticz
20
21 [ -n "$loglevel" ] && procd_append_param command -loglevel "$loglevel"
22 [ -n "$syslog" ] && procd_append_param command -syslog "$syslog"
23
24 [ -d "${userdata}" ] || {
25 mkdir -p "${userdata}"
26 chmod 0770 "$userdata"
27 chown domoticz:domoticz "$userdata"
28 }
29
30 # By default, ${userdata}/scripts is a symlink to /etc/domoticz/scripts
31 # and the two dzVents directories under there which Domoticz will actually
32 # write to at runtime are symlinked back to /var/lib again.
33 [ -d "${userdata}/plugins" ] || ln -sf /etc/domoticz/plugins "${userdata}/plugins"
34 [ -d "${userdata}/scripts" ] || ln -sf /etc/domoticz/scripts "${userdata}/scripts"
35 for DIR in data generated_scripts; do
36 [ -d /var/lib/domoticz/dzVents/$DIR ] || {
37 mkdir -p /var/lib/domoticz/dzVents/$DIR
38 chown domoticz.domoticz /var/lib/domoticz/dzVents/$DIR
39 }
40 done
41 procd_append_param command -userdata "$userdata"
42
43 [ -n "$sslcert" -a "${sslwww:-0}" -gt 0 ] && {
44 procd_append_param command -sslcert "$sslcert"
45 procd_append_param command -sslwww "$sslwww"
46 [ -n "$sslkey" ] && procd_append_param command -sslkey "$sslkey"
47 [ -n "$sslpass" ] && procd_append_param command -sslpass "$sslpass"
48 [ -n "$ssldhparam" ] && procd_append_param command -ssldhparam "$ssldhparam"
49 } || procd_append_param command -sslwww 0
50}
51
52start_service() {
53 procd_open_instance
54
55 procd_set_param command "$PROG"
56 procd_append_param command -noupdates
57 procd_append_param command -approot /usr/share/domoticz/
58
59 config_load "domoticz"
60 config_get_bool disabled "$section" "disabled" 0
61 [ "$disabled" -gt 0 ] && return 1
62 config_foreach start_domoticz domoticz
63
64 procd_set_param pidfile "$PIDFILE"
65 procd_set_param respawn
66 procd_set_param stdout 0
67 procd_set_param term_timeout 10
68 procd_set_param user "domoticz"
69
70 procd_close_instance
71}