b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | #!/bin/sh /etc/rc.common |
| 2 | |
| 3 | START=99 |
| 4 | USE_PROCD=1 |
| 5 | PROG=/usr/bin/domoticz |
| 6 | PIDFILE=/var/run/domoticz.pid |
| 7 | |
| 8 | start_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 | |
| 52 | start_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 | } |