mirror of
https://git.freebsd.org/ports.git
synced 2025-05-15 08:41:51 -04:00
91 lines
2.8 KiB
Bash
91 lines
2.8 KiB
Bash
#!/bin/sh
|
|
|
|
# PROVIDE: kafka
|
|
# REQUIRE: NETWORKING SERVERS DAEMON
|
|
# KEYWORD: shutdown
|
|
#
|
|
# Add kafka_enable="YES" to /etc/rc.conf to enable Kafka:
|
|
#
|
|
# Additional variables you can define are:
|
|
#
|
|
# kafka_user: Username to run Kafka
|
|
# Default: %%KAFKA_USER%%
|
|
# kafka_group: Group to run Kafka
|
|
# Default: %%KAFKA_GROUP%%
|
|
# kafka_config: Configuration file to run Kafka
|
|
# Default: %%ETCDIR%%/server.properties
|
|
# kafka_log4j_config: Configuration file for Kafka logging
|
|
# Default: %%ETCDIR%%/log4j.properties
|
|
# kafka_log_dir: Directory to store Kafka logs
|
|
# Default: %%KAFKA_LOGDIR%%
|
|
# kafka_java_opts: Options passed to JVM to start Kafka
|
|
# Default: None
|
|
# kafka_pidfile: Full path of the Kafka process PID file
|
|
# Default: /var/run/kafka.pid
|
|
# kafka_syslog_output_enable: Set to enable syslog output.
|
|
# Default: YES
|
|
# kafka_syslog_output_tag: Set syslog tag if syslog enabled.
|
|
# Default: kafka
|
|
# kafka_syslog_output_priority: Set syslog priority if syslog enabled.
|
|
# Default: info
|
|
# kafka_syslog_output_facility: Set syslog facility if syslog enabled.
|
|
# Default: daemon
|
|
|
|
. /etc/rc.subr
|
|
|
|
name=kafka
|
|
rcvar=kafka_enable
|
|
|
|
load_rc_config "${name}"
|
|
|
|
: ${kafka_enable:="NO"}
|
|
: ${kafka_user:="%%KAFKA_USER%%"}
|
|
: ${kafka_group:="%%KAFKA_GROUP%%"}
|
|
: ${kafka_config:="%%ETCDIR%%/server.properties"}
|
|
: ${kafka_log4j_config:="%%ETCDIR%%/log4j.properties"}
|
|
: ${kafka_log_dir:="%%KAFKA_LOGDIR%%"}
|
|
: ${kafka_pidfile:=/var/run/kafka.pid}
|
|
: ${kafka_syslog_output_enable:="YES"}
|
|
|
|
start_precmd="kafka_start_precmd"
|
|
|
|
# backwards compatibility
|
|
if [ -n "${kafka_log4j_profile}" ]; then
|
|
kafka_log4j_config="${kafka_log4j_profile#file:}"
|
|
fi
|
|
|
|
if checkyesno kafka_syslog_output_enable; then
|
|
if [ -n "${kafka_syslog_output_tag}" ]; then
|
|
kafka_syslog_output_flags="-T ${kafka_syslog_output_tag}"
|
|
else
|
|
kafka_syslog_output_flags="-T ${name}"
|
|
fi
|
|
if [ -n "${kafka_syslog_output_priority}" ]; then
|
|
kafka_syslog_output_flags="${kafka_syslog_output_flags} -s ${kafka_syslog_output_priority}"
|
|
fi
|
|
if [ -n "${kafka_syslog_output_facility}" ]; then
|
|
kafka_syslog_output_flags="${kafka_syslog_output_flags} -l ${kafka_syslog_output_facility}"
|
|
fi
|
|
fi
|
|
|
|
JAVA="%%JAVA%%"
|
|
CLASSPATH=":%%DATADIR%%/libs/*"
|
|
|
|
kafka_class="kafka.Kafka"
|
|
kafka_log_opts="-Dkafka.logs.dir=${kafka_log_dir} -Dlog4j.configuration=file:${kafka_log4j_config}"
|
|
kafka_main="${kafka_java_opts} ${kafka_log_opts} -cp ${CLASSPATH} ${kafka_class} ${kafka_config}"
|
|
pidfile="${kafka_pidfile}"
|
|
required_dirs="${kafka_log_dir}"
|
|
required_files="${kafka_config} ${kafka_log4j_config}"
|
|
|
|
command="/usr/sbin/daemon"
|
|
command_args="-f ${kafka_syslog_output_flags} -P ${pidfile} -t ${name} ${JAVA} ${kafka_main}"
|
|
|
|
kafka_start_precmd()
|
|
{
|
|
if [ ! -e "${pidfile}" ]; then
|
|
install -m 0600 -o "${kafka_user}" -g "${kafka_group}" /dev/null "${pidfile}"
|
|
fi
|
|
}
|
|
|
|
run_rc_command "$1"
|