diff options
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | install.cgi.sh (renamed from deploy.cgi.sh) | 0 | ||||
| -rw-r--r-- | install.lexd_spool.sh | 43 | ||||
| -rw-r--r-- | lexd-spool.rc | 16 | ||||
| -rwxr-xr-x | lexd-spool.sh (renamed from sub.sh) | 12 | ||||
| -rw-r--r-- | uninstall.lexd_spool.sh | 46 |
6 files changed, 113 insertions, 8 deletions
@@ -96,7 +96,7 @@ install-user: @if ! id -u $(SERVICE_USER) >/dev/null 2>&1; then \ echo "===> Creating service user..."; \ groupadd $(SERVICE_GROUP) 2>/dev/null || true; \ - useradd -g $(SERVICE_GROUP) -s /sbin/nologin -d /var/empty -c "lexd daemon user" $(SERVICE_USER); \ + useradd -g $(SERVICE_GROUP) -s /sbin/nologin -m -c "lexd daemon user" $(SERVICE_USER); \ fi install: $(TARGET) install-user @@ -121,7 +121,7 @@ uninstall: @echo "Note: The data directory and service accounts were preserved." @echo "To remove all remaining data, run:" @echo " # rm -rf $(VARDIR)" - @echo " # userdel $(SERVICE_USER)" + @echo " # userdel -r $(SERVICE_USER)" @echo " # groupdel $(SERVICE_GROUP)" clean: diff --git a/deploy.cgi.sh b/install.cgi.sh index e6d5eeb..e6d5eeb 100644 --- a/deploy.cgi.sh +++ b/install.cgi.sh diff --git a/install.lexd_spool.sh b/install.lexd_spool.sh new file mode 100644 index 0000000..e613c5d --- /dev/null +++ b/install.lexd_spool.sh @@ -0,0 +1,43 @@ +#!/bin/ksh +# +# install.lexd_spool.sh - install lexd-spool binary and rc.d script. +# +# Usage: doas ./install.lexd_spool.sh + +set -e + +BIN_SRC="./lexd-spool.sh" +BIN_DST="/usr/local/bin/lexd-spool" +RC_SRC="./lexd-spool.rc" +RC_DST="/etc/rc.d/lexd_spool" + +if [ "$(id -u)" -ne 0 ]; then + echo "error: this script must be run as root" >&2 + exit 1 +fi + +if [ ! -f "$BIN_SRC" ]; then + echo "error: $BIN_SRC not found" >&2 + exit 1 +fi + +if [ ! -f "$RC_SRC" ]; then + echo "error: $RC_SRC not found" >&2 + exit 1 +fi + +if [ ! -e "$BIN_DST" ]; then + echo "installing $BIN_DST" + install -o root -g wheel -m 0755 "$BIN_SRC" "$BIN_DST" +else + echo "$BIN_DST already exists, skipping" +fi + +if [ ! -e "$RC_DST" ]; then + echo "installing $RC_DST" + install -o root -g wheel -m 0555 "$RC_SRC" "$RC_DST" +else + echo "$RC_DST already exists, skipping" +fi + +echo "done." diff --git a/lexd-spool.rc b/lexd-spool.rc new file mode 100644 index 0000000..7ae53cc --- /dev/null +++ b/lexd-spool.rc @@ -0,0 +1,16 @@ +#!/bin/ksh + +daemon="/usr/local/bin/lexd-spool" +daemon_user="_lexd" +pexp="/bin/ksh ${daemon}" + +. /etc/rc.d/rc.subr + +rc_bg=YES +rc_reload=NO + +rc_check() { + pgrep -q -u "${daemon_user}" -f "^/bin/ksh ${daemon}" +} + +rc_cmd $1 @@ -9,14 +9,14 @@ SSH_HOST="lex-spool" SPOOL_DIR="/var/www/var/lex/spool/new" DICT_DIR="/var/www/var/lex/dict" SOCKET_PATH="/var/run/lexd/sock" -SLEEP_INTERVAL=5 +SLEEP_INTERVAL=30 log_err() { - logger -t spool_proc -p daemon.err "$1" + logger -t lexd-spool -p daemon.err "$1" } log_info() { - logger -t spool_proc -p daemon.info "$1" + logger -t lexd-spool -p daemon.info "$1" } while true; do @@ -48,12 +48,12 @@ while true; do exit 1 fi - # Log truncated input string (up to 60 characters) - trunc_prompt=$(print -r -- "${raw_prompt}" | cut -c1-60) + # Log truncated input string (up to 45 characters) + trunc_prompt=$(print -r -- "${raw_prompt}" | cut -c1-45) log_info "Processing: \"${trunc_prompt}\"" # Pass prompt to socket - response=$(print -r -- "${raw_prompt}" | nc -w 3 -U "${SOCKET_PATH}") + response=$(print -r -- "${raw_prompt}" | nc -w 300 -U "${SOCKET_PATH}") if [ -z "${response}" ]; then log_err "Empty socket response for: ${SPOOL_FILE}" diff --git a/uninstall.lexd_spool.sh b/uninstall.lexd_spool.sh new file mode 100644 index 0000000..39a863a --- /dev/null +++ b/uninstall.lexd_spool.sh @@ -0,0 +1,46 @@ +#!/bin/ksh +# +# uninstall.lexd_spool.sh - remove lexd-spool binary and rc.d script. +# +# Usage: doas ./uninstall.lexd_spool.sh + +set -e + +BIN_DST="/usr/local/bin/lexd-spool" +RC_DST="/etc/rc.d/lexd_spool" +SERVICE="lexd_spool" + +if [ "$(id -u)" -ne 0 ]; then + echo "error: this script must be run as root" >&2 + exit 1 +fi + +# stop the service if it's running +if [ -e "$RC_DST" ] && rcctl check "$SERVICE" >/dev/null 2>&1; then + echo "stopping $SERVICE" + rcctl stop "$SERVICE" +fi + +# disable the service if it's enabled +if [ -e "$RC_DST" ] && rcctl ls on | grep -qx "$SERVICE"; then + echo "disabling $SERVICE" + rcctl disable "$SERVICE" +fi + +# remove the rc.d script +if [ -e "$RC_DST" ]; then + echo "removing $RC_DST" + rm -f "$RC_DST" +else + echo "$RC_DST not present, skipping" +fi + +# remove the binary +if [ -e "$BIN_DST" ]; then + echo "removing $BIN_DST" + rm -f "$BIN_DST" +else + echo "$BIN_DST not present, skipping" +fi + +echo "done." |
