56 lines
2.2 KiB
Bash
Executable File
56 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# rc.d script for the vrobbler Celery worker.
|
|
#
|
|
# PROVIDE: vrobbler_celery_charts
|
|
# REQUIRE: NETWORKING postgresql redis
|
|
# KEYWORD: shutdown
|
|
#
|
|
# Installation (on the FreeBSD jail):
|
|
#
|
|
# install -m 0555 rc.d/vrobbler_celery_charts /usr/local/etc/rc.d/vrobbler_celery_charts
|
|
# sysrc vrobbler_celery_charts_enable="YES"
|
|
# service vrobbler_celery_charts start
|
|
#
|
|
# Configuration (via sysrc or /etc/rc.conf):
|
|
#
|
|
# vrobbler_celery_charts_queues - queues to consume (default: default,charts)
|
|
# vrobbler_celery_charts_bin - path to celery (default: /usr/local/bin/celery)
|
|
# vrobbler_celery_charts_user - user to run as (default: root)
|
|
# vrobbler_celery_charts_flags - extra daemon(8) flags
|
|
#
|
|
# NOTE: do not name the celery path knob "${name}_program". FreeBSD's
|
|
# rc.subr(8) overrides $command with ${name}_program whenever it is set,
|
|
# which would replace the daemon(8) wrapper with celery itself.
|
|
#
|
|
# The command is run under daemon(8) with a supervisor pidfile (-P) and
|
|
# restart-on-crash (-R), so the worker is automatically restarted if it dies,
|
|
# in the same way immortal used to. Sending SIGTERM to the supervisor (which
|
|
# is what `service vrobbler_celery_charts stop` does) forwards the signal to celery,
|
|
# which shuts the worker down gracefully.
|
|
#
|
|
# The default,charts worker handles on-demand tasks plus per-scrobble chart
|
|
# updates. Companion workers (vrobbler_celery_priority, vrobbler_celery_background)
|
|
# consume the priority and background queues with distinct nodenames so they can
|
|
# run side by side on one host.
|
|
#
|
|
. /etc/rc.subr
|
|
|
|
name="vrobbler_celery_charts"
|
|
rcvar="vrobbler_celery_charts_enable"
|
|
|
|
load_rc_config ${name}
|
|
|
|
: ${vrobbler_celery_charts_enable:="NO"}
|
|
: ${vrobbler_celery_charts_queues:="default,charts"}
|
|
: ${vrobbler_celery_charts_bin:="/usr/local/bin/celery"}
|
|
: ${vrobbler_celery_charts_autoscale:="2,6"}
|
|
: ${vrobbler_log_dir:="/var/log"}
|
|
|
|
pidfile="/var/run/${name}.pid"
|
|
|
|
command="/usr/sbin/daemon"
|
|
command_args="-f -P ${pidfile} -R 5 -t ${name} ${vrobbler_celery_charts_bin} -A vrobbler worker -Q ${vrobbler_celery_charts_queues} -n default@%h -l info --logfile ${vrobbler_log_dir}/${name}.log"
|
|
|
|
run_rc_command "$1"
|