nuke/run/nuke.freebsd
fucksophie 896858e027
Some checks failed
Docker image builds / build (push) Waiting to run
Asset Build Verification / asset_verification (push) Has been cancelled
Docs deploy / build (push) Has been cancelled
Go Mod Tidy Check / go_mod_tidy_check (push) Has been cancelled
Go / go_tests (push) Has been cancelled
Package builds (unstable) / package_builds (push) Has been cancelled
Smoke tests / smoke-test (default-config-macro) (push) Has been cancelled
Smoke tests / smoke-test (docker-registry) (push) Has been cancelled
Smoke tests / smoke-test (double_slash) (push) Has been cancelled
Smoke tests / smoke-test (forced-language) (push) Has been cancelled
Smoke tests / smoke-test (git-clone) (push) Has been cancelled
Smoke tests / smoke-test (git-push) (push) Has been cancelled
Smoke tests / smoke-test (healthcheck) (push) Has been cancelled
Smoke tests / smoke-test (i18n) (push) Has been cancelled
Smoke tests / smoke-test (log-file) (push) Has been cancelled
Smoke tests / smoke-test (nginx) (push) Has been cancelled
Smoke tests / smoke-test (palemoon/amd64) (push) Has been cancelled
Smoke tests / smoke-test (robots_txt) (push) Has been cancelled
Check Spelling / Check Spelling (push) Has been cancelled
SSH CI / ssh (aarch64-16k) (push) Has been cancelled
SSH CI / ssh (aarch64-4k) (push) Has been cancelled
SSH CI / ssh (ppc64le) (push) Has been cancelled
SSH CI / ssh (riscv64) (push) Has been cancelled
zizmor / zizmor latest via PyPI (push) Has been cancelled
jane remover
2026-02-07 13:08:47 +02:00

71 lines
2.3 KiB
Bash

#!/bin/sh
# PROVIDE: nuke
# REQUIRE: DAEMON NETWORKING
# KEYWORD: shutdown
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to enable nuke:
# nuke_enable (bool): Set to "NO" by default.
# Set it to "YES" to enable nuke.
# nuke_user (user): Set to "www" by default.
# User to run nuke as.
# nuke_group (group): Set to "www" by default.
# Group to run nuke as.
# nuke_bin (str): Set to "/usr/local/bin/nuke" by default.
# Location of the nuke binary
# nuke_args (str): Set to "" by default.
# Extra flags passed to nuke.
# nuke_env (str): Set to "" by default.
# List of environment variables to be set before starting..
# nuke_env_file (str): Set to "/etc/nuke.env" by default.
# Location of a file containing environment variables.
#
# Closely follows the init script from https://cgit.freebsd.org/ports/tree/www/go-anubis/files/anubis.in
# with a couple of adjustments for more flexible environment variable handling
. /etc/rc.subr
name=nuke
rcvar=nuke_enable
load_rc_config ${name}
: ${nuke_enable="NO"}
: ${nuke_user="www"}
: ${nuke_group="www"}
: ${nuke_bin="/usr/local/bin/nuke"}
: ${nukeargs=""}
: ${nuke_env=""}
: ${nuke_env_file="/etc/nuke.env"}
pidfile=/var/run/${name}.pid
daemon_pidfile=/var/run/${name}-daemon.pid
command=/usr/sbin/daemon
procname=${nuke_bin}
logfile=/var/log/${name}.log
command_args="-c -f -R 5 -r -T ${name} -p ${pidfile} -P ${daemon_pidfile} -o ${logfile} ${procname} ${nuke_args}"
start_precmd=nuke_startprecmd
stop_postcmd=nuke_stoppostcmd
nuke_startprecmd () {
if [ ! -e ${logfile} ]; then
install -o ${nuke_user} -g ${nuke_group} /dev/null ${logfile}
fi
if [ ! -e ${daemon_pidfile} ]; then
install -o ${nuke_user} -g ${nuke_group} /dev/null ${daemon_pidfile}
fi
if [ ! -e ${pidfile} ]; then
install -o ${nuke_user} -g ${nuke_group} /dev/null ${pidfile}
fi
}
nuke_stoppostcmd() {
if [ -f "${daemon_pidfile}" ]; then
pids=$( pgrep -F ${daemon_pidfile} 2>&1 )
_err=$?
[ ${_err} -eq 0 ] && kill -9 ${pids}
fi
}
run_rc_command "$1"