|
@@ -6,18 +6,47 @@ STOP=50
|
|
|
|
|
|
USE_PROCD=1
|
|
|
|
|
|
-start_service() {
|
|
|
- touch /var/run/tor.pid
|
|
|
- chown tor:tor /var/run/tor.pid
|
|
|
+TORRC_GEN="/tmp/torrc"
|
|
|
+
|
|
|
+handle_conf_file() {
|
|
|
+ local conf_path="$1"
|
|
|
+ if [ -f "$conf_path" ] || [ -d "$conf_path" ]; then
|
|
|
+ echo "%include $conf_path"
|
|
|
+ fi
|
|
|
+}
|
|
|
|
|
|
+generate_conf() {
|
|
|
+ local default_conf generated_conf
|
|
|
+
|
|
|
+ config_load tor
|
|
|
+ config_get default_conf conf default "/etc/tor/torrc"
|
|
|
+ config_get generated_conf conf generated "/tmp/torrc"
|
|
|
+ TORRC_GEN="$generated_conf"
|
|
|
+
|
|
|
+ {
|
|
|
+ echo "## This file was automatically generated please do not edit here !"
|
|
|
+ config_list_foreach "conf" head_include handle_conf_file
|
|
|
+ echo "%include $default_conf"
|
|
|
+ config_list_foreach "conf" tail_include handle_conf_file
|
|
|
+ } > "$TORRC_GEN"
|
|
|
+}
|
|
|
+
|
|
|
+reload_service() {
|
|
|
+ procd_send_signal /usr/sbin/tor
|
|
|
+}
|
|
|
+
|
|
|
+start_service() {
|
|
|
mkdir -m 0700 -p /var/lib/tor
|
|
|
chown -R tor:tor /var/lib/tor
|
|
|
|
|
|
mkdir -m 0755 -p /var/log/tor
|
|
|
chown -R tor:tor /var/log/tor
|
|
|
|
|
|
+ generate_conf
|
|
|
+
|
|
|
procd_open_instance
|
|
|
procd_set_param command /usr/sbin/tor --runasdaemon 0
|
|
|
+ procd_append_param command -f "$TORRC_GEN"
|
|
|
procd_set_param respawn
|
|
|
procd_close_instance
|
|
|
}
|