log.init 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/bin/sh /etc/rc.common
  2. # Copyright (C) 2013 OpenWrt.org
  3. # start after and stop before networking
  4. START=21
  5. STOP=89
  6. USE_PROCD=1
  7. NAME=logread
  8. PROG=/sbin/logread
  9. PIDCOUNT=1
  10. start_service_file()
  11. {
  12. local pid_file="/var/run/logread.${PIDCOUNT}.pid"
  13. local log_file log_size
  14. config_get log_file $1 log_file
  15. config_get log_size $1 log_size
  16. [ -z "${log_file}" ] && return
  17. procd_open_instance
  18. procd_set_param command "$PROG" -f -F "$log_file" -p "$pid_file"
  19. [ -n "${log_size}" ] && procd_append_param command -S "$log_size"
  20. procd_close_instance
  21. PIDCOUNT="$(( ${PIDCOUNT} + 1))"
  22. }
  23. start_service_remote()
  24. {
  25. local pid_file="/var/run/logread.${PIDCOUNT}.pid"
  26. local log_ip log_port log_proto
  27. config_get log_ip $1 log_ip
  28. config_get log_port $1 log_port
  29. config_get log_proto $1 log_proto udp
  30. [ -z "${log_ip}" ] && return
  31. procd_open_instance
  32. procd_set_param command "$PROG" -f -r "$log_ip" "${log_port:-514}" -p "$pid_file"
  33. [ "${log_proto}" != "udp" ] || procd_append_param command -u
  34. procd_close_instance
  35. PIDCOUNT="$(( ${PIDCOUNT} + 1))"
  36. }
  37. service_triggers()
  38. {
  39. procd_add_config_trigger "system" "/etc/init.d/log" "start"
  40. }
  41. start_service()
  42. {
  43. config_load system
  44. config_foreach start_service_file system
  45. config_foreach start_service_remote system
  46. }