minio 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #!/bin/sh
  2. # PROVIDE: minio
  3. # KEYWORD: shutdown
  4. #
  5. # Add the following lines to /etc/rc.conf to enable minio:
  6. #
  7. # minio_enable (bool): Set to "NO" by default.
  8. # Set it to "YES" to enable minio
  9. # minio_config (path): Set to "/usr/local/etc/minio" by default
  10. # Set to directory to store minio config (deprecated)
  11. # minio_certs (path): Set to "/usr/local/etc/minio/certs" by default
  12. # Set to directory to certs dir
  13. # minio_disks (path): Set to "/var/db/minio" by default.
  14. # Set it to directory to store minio data
  15. # minio_address (str): Set to ":9000" by default.
  16. # Set it to address for minio to listen on
  17. # minio_user (str): Set to "minio" by default.
  18. # Set it to user to run minio under
  19. # minio_group (str): Set to "minio" by default.
  20. # Set it to group to run minio under
  21. # minio_logfile (str): Set to "/var/log/minio.log" by default.
  22. # Set it to file where stdout/stderr are logged.
  23. # minio_syslog_enable (bool): Set to YES by default
  24. # Set it to NO to disable syslog output
  25. # minio_syslog_tag (str): Set to "minio" by default.
  26. # Set syslog tag if syslog enabled
  27. # minio_syslog_priority (str): Set to "info" by default.
  28. # Set syslog priority if syslog enabled
  29. # minio_syslog_facility (str): Set to "daemon" by default.
  30. # Set syslog facility if syslog enabled
  31. #
  32. . /etc/rc.subr
  33. name=minio
  34. rcvar=minio_enable
  35. load_rc_config ${name}
  36. : ${minio_enable:="NO"}
  37. : ${minio_certs="/usr/local/etc/minio/certs"}
  38. : ${minio_disks="/var/db/minio"}
  39. : ${minio_address=":9000"}
  40. : ${minio_user:="minio"}
  41. : ${minio_group:="minio"}
  42. : ${minio_syslog_enable:="YES"}
  43. : ${minio_logfile:="/var/log/minio.log"}
  44. start_precmd="minio_start_precmd"
  45. if checkyesno minio_syslog_enable; then
  46. if [ -n "${minio_syslog_tag}" ]; then
  47. minio_syslog_output_flags="-T ${minio_syslog_tag}"
  48. else
  49. minio_syslog_output_flags="-T ${name}"
  50. fi
  51. if [ -n "${minio_syslog_priority}" ]; then
  52. minio_syslog_output_flags="${minio_syslog_output_flags} -s ${minio_syslog_priority}"
  53. fi
  54. if [ -n "${minio_syslog_facility}" ]; then
  55. minio_syslog_output_flags="${minio_syslog_output_flags} -l ${minio_syslog_facility}"
  56. fi
  57. else
  58. minio_syslog_output_flags="-o ${minio_logfile}"
  59. fi
  60. # legacy compatibility
  61. if [ -n "${minio_config}" ]; then
  62. minio_config_flag="-C \"${minio_config}\""
  63. fi
  64. pidfile="/var/run/${name}.pid"
  65. procname="/usr/local/bin/minio"
  66. command="/usr/sbin/daemon"
  67. command_args="-f -t ${name} ${minio_syslog_output_flags} -p ${pidfile} /usr/bin/env ${minio_env} ${procname} ${minio_config_flag} -S \"${minio_certs}\" --quiet server --address=\"${minio_address}\" ${minio_disks} ${minio_args}"
  68. minio_start_precmd()
  69. {
  70. if [ ! -e "${pidfile}" ]; then
  71. install -m 0600 -o "${minio_user}" -g "${minio_group}" /dev/null "${pidfile}"
  72. fi
  73. if echo "${minio_disks}" | egrep -q -v '^[^/]|\.{3}'; then
  74. for disk in "${minio_disks}"; do
  75. if [ ! -d "${disk}" ]; then
  76. install -d -m 0750 -o "${minio_user}" -g "${minio_group}" "${disk}"
  77. fi
  78. done
  79. fi
  80. if [ -n "${minio_config}" -a ! -d "${minio_config}" ]; then
  81. install -d -m 0750 -o "${minio_user}" -g "${minio_group}" "${minio_config}"
  82. fi
  83. if ! checkyesno minio_syslog_enable && [ ! -e "${minio_logfile}" ]; then
  84. install -m 0640 -o "${minio_user}" -g "${minio_group}" /dev/null "${minio_logfile}"
  85. fi
  86. }
  87. run_rc_command "$1"