mirror of
https://github.com/casjaysdevdocker/bind
synced 2026-07-31 14:11:36 -04:00
🔧 Update configuration files 🔧
Dockerfile .env.scripts rootfs/usr/local/bin/entrypoint.sh rootfs/usr/local/etc/docker/functions/entrypoint.sh rootfs/usr/local/etc/docker/init.d/01-tor.sh rootfs/usr/local/etc/docker/init.d/02-named.sh rootfs/usr/local/etc/docker/init.d/03-nginx.sh rootfs/usr/local/etc/docker/init.d/04-php-fpm.sh
This commit is contained in:
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
##@Version : 202605051439-git
|
##@Version : 202605131434-git
|
||||||
# @@Author : CasjaysDev
|
# @@Author : CasjaysDev
|
||||||
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
# @@Contact : CasjaysDev <docker-admin@casjaysdev.pro>
|
||||||
# @@License : MIT
|
# @@License : MIT
|
||||||
@@ -77,7 +77,7 @@ DEFAULT_DATA_DIR="/usr/local/share/template-files/data"
|
|||||||
DEFAULT_CONF_DIR="/usr/local/share/template-files/config"
|
DEFAULT_CONF_DIR="/usr/local/share/template-files/config"
|
||||||
DEFAULT_TEMPLATE_DIR="/usr/local/share/template-files/defaults"
|
DEFAULT_TEMPLATE_DIR="/usr/local/share/template-files/defaults"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
ENV_PACKAGES="bind bind-tools bind-dnssec-root bind-plugins bash"
|
ENV_PACKAGES="bind bind-tools bind-dnssec-root bind-plugins nginx php83 php83-fpm php83-opcache tor bash tini"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# ex: ts=2 sw=2 et filetype=sh
|
# ex: ts=2 sw=2 et filetype=sh
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|||||||
+5
-15
@@ -1,7 +1,7 @@
|
|||||||
# Docker image for bind using the alpine template
|
# Docker image for bind using the alpine template
|
||||||
ARG IMAGE_NAME="bind"
|
ARG IMAGE_NAME="bind"
|
||||||
ARG PHP_SERVER="bind"
|
ARG PHP_SERVER="bind"
|
||||||
ARG BUILD_DATE="202605101200"
|
ARG BUILD_DATE="202605131434"
|
||||||
ARG LANGUAGE="en_US.UTF-8"
|
ARG LANGUAGE="en_US.UTF-8"
|
||||||
ARG TIMEZONE="America/New_York"
|
ARG TIMEZONE="America/New_York"
|
||||||
ARG WWW_ROOT_DIR="/usr/local/share/httpd/default"
|
ARG WWW_ROOT_DIR="/usr/local/share/httpd/default"
|
||||||
@@ -54,7 +54,7 @@ ARG PHP_SERVER
|
|||||||
ARG SHELL_OPTS
|
ARG SHELL_OPTS
|
||||||
ARG PATH
|
ARG PATH
|
||||||
|
|
||||||
ARG PACK_LIST="bind bind-tools bind-dnssec-root bind-plugins bash "
|
ARG PACK_LIST="bind bind-tools bind-dnssec-root bind-plugins nginx php83 php83-fpm php83-opcache tor bash tini "
|
||||||
|
|
||||||
ENV ENV=~/.profile
|
ENV ENV=~/.profile
|
||||||
ENV SHELL="/bin/sh"
|
ENV SHELL="/bin/sh"
|
||||||
@@ -76,13 +76,7 @@ RUN set -e; \
|
|||||||
|
|
||||||
RUN set -e; \
|
RUN set -e; \
|
||||||
echo "Setting up prerequisites"; \
|
echo "Setting up prerequisites"; \
|
||||||
apk --no-cache add bash; \
|
true
|
||||||
SH_CMD="$(which sh 2>/dev/null||command -v sh 2>/dev/null)"; \
|
|
||||||
BASH_CMD="$(which bash 2>/dev/null||command -v bash 2>/dev/null)"; \
|
|
||||||
[ -x "$BASH_CMD" ] && symlink "$BASH_CMD" "/bin/sh" || true; \
|
|
||||||
[ -x "$BASH_CMD" ] && symlink "$BASH_CMD" "/usr/bin/sh" || true; \
|
|
||||||
[ -x "$BASH_CMD" ] && [ "$SH_CMD" != "/bin/sh" ] && symlink "$BASH_CMD" "$SH_CMD" || true; \
|
|
||||||
[ -n "$BASH_CMD" ] && sed -i 's|root:x:.*|root:x:0:0:root:/root:'$BASH_CMD'|g' "/etc/passwd" || true
|
|
||||||
|
|
||||||
ENV SHELL="/bin/bash"
|
ENV SHELL="/bin/bash"
|
||||||
SHELL [ "/bin/bash", "-c" ]
|
SHELL [ "/bin/bash", "-c" ]
|
||||||
@@ -97,12 +91,7 @@ RUN echo "Initializing the system"; \
|
|||||||
|
|
||||||
RUN echo "Creating and editing system files "; \
|
RUN echo "Creating and editing system files "; \
|
||||||
$SHELL_OPTS; \
|
$SHELL_OPTS; \
|
||||||
rm -Rf "/etc/apk/repositories"; \
|
[ -f "/root/.profile" ] || touch "/root/.profile"; \
|
||||||
[ "$DISTRO_VERSION" = "latest" ] && DISTRO_VERSION="edge";[ "$DISTRO_VERSION" = "edge" ] || DISTRO_VERSION="v${DISTRO_VERSION}"; \
|
|
||||||
echo "http://dl-cdn.alpinelinux.org/alpine/${DISTRO_VERSION}/main" >>"/etc/apk/repositories"; \
|
|
||||||
echo "http://dl-cdn.alpinelinux.org/alpine/${DISTRO_VERSION}/community" >>"/etc/apk/repositories"; \
|
|
||||||
if [ "${DISTRO_VERSION}" = "edge" ]; then echo "http://dl-cdn.alpinelinux.org/alpine/${DISTRO_VERSION}/testing" >>"/etc/apk/repositories";fi; \
|
|
||||||
apk update; apk upgrade --no-cache; \
|
|
||||||
if [ -f "/root/docker/setup/01-system.sh" ];then echo "Running the system script";/root/docker/setup/01-system.sh||{ echo "Failed to execute /root/docker/setup/01-system.sh" >&2 && exit 10; };echo "Done running the system script";fi; \
|
if [ -f "/root/docker/setup/01-system.sh" ];then echo "Running the system script";/root/docker/setup/01-system.sh||{ echo "Failed to execute /root/docker/setup/01-system.sh" >&2 && exit 10; };echo "Done running the system script";fi; \
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@@ -148,6 +137,7 @@ RUN echo "Custom Settings"; \
|
|||||||
$SHELL_OPTS; \
|
$SHELL_OPTS; \
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
|
||||||
RUN echo "Setting up users and scripts "; \
|
RUN echo "Setting up users and scripts "; \
|
||||||
$SHELL_OPTS; \
|
$SHELL_OPTS; \
|
||||||
if [ -f "/root/docker/setup/04-users.sh" ];then echo "Running the users script";/root/docker/setup/04-users.sh||{ echo "Failed to execute /root/docker/setup/04-users.sh" >&2 && exit 10; };echo "Done running the users script";fi; \
|
if [ -f "/root/docker/setup/04-users.sh" ];then echo "Running the users script";/root/docker/setup/04-users.sh||{ echo "Failed to execute /root/docker/setup/04-users.sh" >&2 && exit 10; };echo "Done running the users script";fi; \
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
##@Version : 202602061352-git
|
##@Version : 202605131434-git
|
||||||
# @@Author : Jason Hempstead
|
# @@Author : Jason Hempstead
|
||||||
# @@Contact : jason@casjaysdev.pro
|
# @@Contact : jason@casjaysdev.pro
|
||||||
# @@License : WTFPL
|
# @@License : WTFPL
|
||||||
@@ -25,7 +25,13 @@ trap 'retVal=$?;[ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ]
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# setup debugging - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
|
# setup debugging - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
|
||||||
[ -f "/config/.debug" ] && [ -z "$DEBUGGER_OPTIONS" ] && export DEBUGGER_OPTIONS="$(<"/config/.debug")" || DEBUGGER_OPTIONS="${DEBUGGER_OPTIONS:-}"
|
[ -f "/config/.debug" ] && [ -z "$DEBUGGER_OPTIONS" ] && export DEBUGGER_OPTIONS="$(<"/config/.debug")" || DEBUGGER_OPTIONS="${DEBUGGER_OPTIONS:-}"
|
||||||
{ [ "$DEBUGGER" = "on" ] || [ -f "/config/.debug" ]; } && echo "Enabling debugging" && set -o pipefail -x$DEBUGGER_OPTIONS && export DEBUGGER="on" || set -o pipefail
|
if [ "$DEBUGGER" = "on" ] || [ -f "/config/.debug" ]; then
|
||||||
|
echo "Enabling debugging"
|
||||||
|
set -o pipefail -x$DEBUGGER_OPTIONS
|
||||||
|
export DEBUGGER="on"
|
||||||
|
else
|
||||||
|
set -o pipefail
|
||||||
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
PATH="/usr/local/etc/docker/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin"
|
PATH="/usr/local/etc/docker/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin"
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
##@Version : 202602061352-git
|
##@Version : 202605051922-git
|
||||||
# @@Author : Jason Hempstead
|
# @@Author : Jason Hempstead
|
||||||
# @@Contact : git-admin@casjaysdev.pro
|
# @@Contact : git-admin@casjaysdev.pro
|
||||||
# @@License : LICENSE.md
|
# @@License : LICENSE.md
|
||||||
@@ -31,7 +31,7 @@ else
|
|||||||
set -o pipefail
|
set -o pipefail
|
||||||
fi
|
fi
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__remove_extra_spaces() { sed 's/\( \)*/\1/g;s|^ ||g'; }
|
__remove_extra_spaces() { sed -E 's/ +/ /g; s|^ ||'; }
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__log_debug() {
|
__log_debug() {
|
||||||
[ "$DEBUGGER" = "on" ] && echo "[DEBUG] $*" >&2
|
[ "$DEBUGGER" = "on" ] && echo "[DEBUG] $*" >&2
|
||||||
@@ -76,201 +76,121 @@ __rm() {
|
|||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
__grep_test() {
|
__grep_test() { grep -sh "$1" "$2" 2>/dev/null | grep -qwF "${3:-$1}"; }
|
||||||
if grep -sh "$1" "$2" 2>/dev/null | grep -qwF "${3:-$1}"; then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
__netstat() {
|
__netstat() {
|
||||||
if [ -n "$(command -v netstat 2>/dev/null)" ]; then
|
command -v netstat &>/dev/null || {
|
||||||
netstat "$@" 2>/dev/null
|
|
||||||
else
|
|
||||||
[ "$DEBUGGER" = "on" ] && echo "Warning: netstat command not found" >&2
|
[ "$DEBUGGER" = "on" ] && echo "Warning: netstat command not found" >&2
|
||||||
return 10
|
return 10
|
||||||
fi
|
}
|
||||||
|
netstat "$@" 2>/dev/null
|
||||||
}
|
}
|
||||||
__cd() {
|
__cd() {
|
||||||
if [ ! -d "$1" ]; then
|
[ -d "$1" ] || mkdir -p "$1" 2>/dev/null || return 1
|
||||||
mkdir -p "$1" 2>/dev/null || return 1
|
|
||||||
fi
|
|
||||||
builtin cd "$1" || return 1
|
builtin cd "$1" || return 1
|
||||||
}
|
}
|
||||||
__is_in_file() {
|
__is_in_file() { [ -e "$2" ] && grep -Rsq "$1" "$2" 2>/dev/null; }
|
||||||
if [ -e "$2" ] && grep -Rsq "$1" "$2" 2>/dev/null; then
|
__curl() { curl -q -sfI --max-time 3 -k -o /dev/null "$@" 2>/dev/null || return 10; }
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
__curl() {
|
|
||||||
if curl -q -sfI --max-time 3 -k -o /dev/null "$@" 2>/dev/null; then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 10
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
__find() {
|
__find() {
|
||||||
if find "$1" -mindepth 1 -type ${2:-f,d} 2>/dev/null | grep '.'; then
|
local result
|
||||||
return 0
|
result=$(find "$1" -mindepth 1 -type "${2:-f,d}" 2>/dev/null)
|
||||||
else
|
[ -n "$result" ] || return 10
|
||||||
return 10
|
printf '%s\n' "$result"
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
__pcheck() {
|
__pcheck() {
|
||||||
if [ -n "$(which pgrep 2>/dev/null)" ] && pgrep -x "$1" &>/dev/null; then
|
command -v pgrep &>/dev/null && pgrep -x "$1" &>/dev/null || return 10
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 10
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
__file_exists_with_content() {
|
|
||||||
if [ -n "$1" ] && [ -f "$1" ] && [ -s "$1" ]; then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
__sed() {
|
|
||||||
if sed -i 's|'$1'|'$2'|g' "$3" 2>/dev/null; then
|
|
||||||
return 0
|
|
||||||
elif sed -i "s|$1|$2|g" "$3" 2>/dev/null; then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
__file_exists_with_content() { [ -n "$1" ] && [ -f "$1" ] && [ -s "$1" ] || return 2; }
|
||||||
|
__sed() { sed -i "s|$1|$2|g" "$3" 2>/dev/null || return 1; }
|
||||||
__ps() {
|
__ps() {
|
||||||
if [ -f "$(type -P ps 2>/dev/null)" ]; then
|
command -v ps &>/dev/null || return 10
|
||||||
if ps "$@" 2>/dev/null | sed 's|:||g' | grep -Fw " ${1:-$SERVICE_NAME}$"; then
|
ps "$@" 2>/dev/null | sed 's|:||g' | grep -Fw " ${1:-$SERVICE_NAME}$" || return 10
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 10
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
return 10
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
__is_dir_empty() {
|
__is_dir_empty() {
|
||||||
if [ -n "$1" ]; then
|
[ -n "$1" ] && [ -d "$1" ] || return 1
|
||||||
if [ "$(ls -A "$1" 2>/dev/null | wc -l)" -eq 0 ]; then
|
[ -z "$(ls -A "$1" 2>/dev/null)" ]
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
__get_ip6() {
|
__get_ip6() {
|
||||||
local ip6
|
ip a 2>/dev/null | awk '/^[[:space:]]*inet6 / {
|
||||||
ip6="$(ip a 2>/dev/null | grep -w 'inet6' | awk '{print $2}' | grep -vE '^::1|^fe' | sed 's|/.*||g' | head -n1 | grep '.')"
|
split($2, a, "/"); ip = a[1]
|
||||||
if [ -n "$ip6" ]; then
|
if (ip !~ /^::1$/ && ip !~ /^fe/) { print ip; exit }
|
||||||
echo "$ip6"
|
}'
|
||||||
else
|
|
||||||
echo ''
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
__get_ip4() {
|
__get_ip4() {
|
||||||
local ip4
|
local ip4
|
||||||
ip4="$(ip a 2>/dev/null | grep -w 'inet' | awk '{print $2}' | grep -vE '^127.0.0' | sed 's|/.*||g' | head -n1 | grep '.')"
|
ip4=$(ip a 2>/dev/null | awk '/^[[:space:]]*inet / {
|
||||||
if [ -n "$ip4" ]; then
|
split($2, a, "/"); ip = a[1]
|
||||||
echo "$ip4"
|
if (ip !~ /^127\.0\.0/) { print ip; exit }
|
||||||
else
|
}')
|
||||||
echo '127.0.0.1'
|
echo "${ip4:-127.0.0.1}"
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
__find_and_remove() {
|
__find_and_remove() {
|
||||||
find "${2:-/etc}" -iname "$1" -exec rm -Rfv {} \; 2>/dev/null || true
|
find "${2:-/etc}" -iname "$1" -exec rm -Rfv {} \; 2>/dev/null || true
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__pgrep() {
|
__pgrep() {
|
||||||
local count=3
|
local srvc="$1" count=3
|
||||||
local srvc="${1:-SERVICE_NAME}"
|
[ -z "$srvc" ] && return 10
|
||||||
local found=0
|
|
||||||
if [ -z "$srvc" ] || [ "$srvc" = "SERVICE_NAME" ]; then
|
|
||||||
return 10
|
|
||||||
fi
|
|
||||||
while [ $count -ge 0 ]; do
|
while [ $count -ge 0 ]; do
|
||||||
if pgrep -x "$srvc" >/dev/null 2>&1; then
|
pgrep -x "$srvc" &>/dev/null && return 0
|
||||||
found=1
|
pgrep -f "$srvc" &>/dev/null && return 0
|
||||||
break
|
ps -ef 2>/dev/null | grep -v 'grep' | grep -qw "$srvc" && return 0
|
||||||
elif pgrep -f "$srvc" >/dev/null 2>&1; then
|
[ $count -gt 0 ] && sleep 1
|
||||||
found=1
|
|
||||||
break
|
|
||||||
elif ps -ef 2>/dev/null | grep -v grep | grep -qw "$srvc"; then
|
|
||||||
found=1
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
if [ $count -gt 0 ]; then
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
count=$((count - 1))
|
count=$((count - 1))
|
||||||
done
|
done
|
||||||
if [ $found -eq 1 ]; then
|
return 10
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 10
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__find_file_relative() {
|
__find_file_relative() {
|
||||||
if [ ! -e "$1" ]; then
|
[ -e "$1" ] || return 0
|
||||||
return 0
|
find "$1"/* -not -path '*env/*' -not -path '.git*' -type f 2>/dev/null \
|
||||||
fi
|
| sort -u \
|
||||||
find "$1"/* -not -path '*env/*' -not -path '.git*' -type f 2>/dev/null | sed 's|'$1'/||g' | sort -u | grep -v '^$' | grep '.' || true
|
| sed "s|^$1/||" || true
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__find_directory_relative() {
|
__find_directory_relative() {
|
||||||
if [ ! -d "$1" ]; then
|
[ -d "$1" ] || return 0
|
||||||
return 0
|
find "$1"/* -not -path '*env/*' -not -path '.git*' -type d 2>/dev/null \
|
||||||
fi
|
| sort -u \
|
||||||
find "$1"/* -not -path '*env/*' -not -path '.git*' -type d 2>/dev/null | sed 's|'$1'/||g' | sort -u | grep -v '^$' | grep '.' || true
|
| sed "s|^$1/||" || true
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__pid_exists() {
|
__pid_exists() { [ -n "$1" ] && [ -d "/proc/$1" ]; }
|
||||||
local result=""
|
|
||||||
result="$(ps -ax --no-header 2>/dev/null | sed 's/^[[:space:]]*//g' | awk -F' ' '{print $1}' | sed 's|:||g' | grep '[0-9]' | sort -uV | grep "^$1$" 2>/dev/null || echo '')"
|
|
||||||
if [ -n "$result" ]; then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
__is_running() {
|
__is_running() {
|
||||||
local result=""
|
local pat="$1"
|
||||||
result="$(ps -eo args --no-header 2>/dev/null | awk '{print $1,$2,$3}' | sed 's|:||g' | sort -u | grep -vE 'grep|COMMAND|awk|tee|ps|sed|sort|tail' | grep "$1" | grep "${2:-^}" 2>/dev/null || echo '')"
|
[ -n "$2" ] && pat="$pat.*$2"
|
||||||
if [ -n "$result" ]; then
|
if command -v pgrep &>/dev/null; then
|
||||||
return 0
|
pgrep -f "$pat" &>/dev/null
|
||||||
else
|
else
|
||||||
return 1
|
ps -eo args 2>/dev/null | grep -v grep | grep -Eq "$pat"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
__get_pid() {
|
__get_pid() {
|
||||||
local result=""
|
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
[ "$DEBUGGER" = "on" ] && echo "Warning: __get_pid called without process name" >&2
|
[ "$DEBUGGER" = "on" ] && echo "Warning: __get_pid called without process name" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
result="$(ps -ax --no-header 2>/dev/null | sed 's/^[[:space:]]*//g;s|;||g;s|:||g' | awk '{print $1,$5}' | sed 's|:||g' | grep "$1$" | grep -v 'grep' | awk -F' ' '{print $1}' | grep '[0-9]' | sort -uV | head -n1 | grep '.' 2>/dev/null || echo '')"
|
local pid
|
||||||
if [ -n "$result" ]; then
|
pid=$(pgrep -x "$1" 2>/dev/null | head -n1)
|
||||||
echo "$result"
|
if [ -n "$pid" ]; then
|
||||||
|
echo "$pid"
|
||||||
return 0
|
return 0
|
||||||
else
|
|
||||||
[ "$DEBUGGER" = "on" ] && echo "Debug: No PID found for process: $1" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
fi
|
||||||
|
[ "$DEBUGGER" = "on" ] && echo "Debug: No PID found for process: $1" >&2
|
||||||
|
return 1
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__format_variables() { printf '%s\n' "${@//,/ }" | tr ' ' '\n' | sort -RVu | grep -v '^$' | tr '\n' ' ' | __clean_variables | grep '.' || return 0; }
|
__format_variables() {
|
||||||
|
local input="${*//,/ }"
|
||||||
|
[ -z "$input" ] && return 0
|
||||||
|
printf '%s\n' $input | sort -Ru | tr '\n' ' '
|
||||||
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__clean_variables() {
|
__clean_variables() {
|
||||||
local var="$*"
|
local var="$*"
|
||||||
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
var="${var#"${var%%[![:space:]]*}"}"
|
||||||
var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters
|
var="${var%"${var##*[![:space:]]}"}"
|
||||||
var="$(printf '%s\n' "$var" | sed 's/\( \)*/\1/g;s|^ ||g')"
|
while [[ 202605051922-gitar == *" "* ]]; do var="${var// / }"; done
|
||||||
printf '%s' "$var" | grep -v '^$'
|
[ -n "202605051922-gitar" ] && printf '%s' "$var"
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__no_exit() {
|
__no_exit() {
|
||||||
@@ -284,7 +204,8 @@ __no_exit() {
|
|||||||
# pid file from a prior container life (docker restart) would otherwise
|
# pid file from a prior container life (docker restart) would otherwise
|
||||||
# cause us to exit instead of entering the monitor loop.
|
# cause us to exit instead of entering the monitor loop.
|
||||||
if [ -f "/run/.no_exit.pid" ]; then
|
if [ -f "/run/.no_exit.pid" ]; then
|
||||||
no_exit_pid="$(cat /run/.no_exit.pid 2>/dev/null)"
|
local no_exit_pid
|
||||||
|
no_exit_pid=$(<"/run/.no_exit.pid") 2>/dev/null
|
||||||
if [ -n "$no_exit_pid" ] && kill -0 "$no_exit_pid" 2>/dev/null; then
|
if [ -n "$no_exit_pid" ] && kill -0 "$no_exit_pid" 2>/dev/null; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
@@ -324,10 +245,10 @@ __no_exit() {
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__trim() {
|
__trim() {
|
||||||
local var="${*//;/ }"
|
local var="${*//;/ }"
|
||||||
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
var="${var#"${var%%[![:space:]]*}"}"
|
||||||
var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters
|
var="${var%"${var##*[![:space:]]}"}"
|
||||||
var="$(echo "$var" | __remove_extra_spaces | sed "s| |; |g;s|;$| |g" | __remove_extra_spaces)"
|
while [[ 202605051922-gitar == *" "* ]]; do var="${var// / }"; done
|
||||||
printf '%s' "$var" | sed 's|;||g' | grep -v '^$'
|
[ -n "202605051922-gitar" ] && printf '%s' "$var"
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__banner() {
|
__banner() {
|
||||||
@@ -349,17 +270,21 @@ __service_banner() {
|
|||||||
printf '# - - - %s %-*s %s - - - #\n' "$icon" "$text_width" "$full_message" "$icon"
|
printf '# - - - %s %-*s %s - - - #\n' "$icon" "$text_width" "$full_message" "$icon"
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__find_php_bin() { find -L '/usr'/*bin -maxdepth 4 -name 'php-fpm*' 2>/dev/null | head -n1 | grep '.' || echo ''; }
|
__find_php_bin() { find -L '/usr'/*bin -maxdepth 4 -name 'php-fpm*' 2>/dev/null | head -n1; }
|
||||||
__find_php_ini() { find -L '/etc' -maxdepth 4 -name 'php.ini' 2>/dev/null | head -n1 | sed 's|/php.ini||g' | grep '.' || echo ''; }
|
__find_php_ini() {
|
||||||
|
local f
|
||||||
|
f=$(find -L '/etc' -maxdepth 4 -name 'php.ini' 2>/dev/null | head -n1)
|
||||||
|
[ -n "$f" ] && printf '%s\n' "${f%/php.ini}"
|
||||||
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__find_nginx_conf() { find -L '/etc' -maxdepth 4 -name 'nginx.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; }
|
__find_nginx_conf() { find -L '/etc' -maxdepth 4 -name 'nginx.conf' 2>/dev/null | head -n1; }
|
||||||
__find_caddy_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'caddy.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; }
|
__find_caddy_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'caddy.conf' 2>/dev/null | head -n1; }
|
||||||
__find_lighttpd_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'lighttpd.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; }
|
__find_lighttpd_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'lighttpd.conf' 2>/dev/null | head -n1; }
|
||||||
__find_cherokee_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'cherokee.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; }
|
__find_cherokee_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'cherokee.conf' 2>/dev/null | head -n1; }
|
||||||
__find_httpd_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'httpd.conf' -o -iname 'apache2.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; }
|
__find_httpd_conf() { find -L '/etc' -maxdepth 4 -type f -iname 'httpd.conf' -o -iname 'apache2.conf' 2>/dev/null | head -n1; }
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__find_mysql_conf() { find -L '/etc' -maxdepth 4 -type f -name 'my.cnf' 2>/dev/null | head -n1 | grep '.' || echo ''; }
|
__find_mysql_conf() { find -L '/etc' -maxdepth 4 -type f -name 'my.cnf' 2>/dev/null | head -n1; }
|
||||||
__find_pgsql_conf() { find -L '/var/lib' '/etc' -maxdepth 8 -type f -name 'postgresql.conf' 2>/dev/null | head -n1 | grep '.' || echo ''; }
|
__find_pgsql_conf() { find -L '/var/lib' '/etc' -maxdepth 8 -type f -name 'postgresql.conf' 2>/dev/null | head -n1; }
|
||||||
__find_couchdb_conf() { return; }
|
__find_couchdb_conf() { return; }
|
||||||
__find_mongodb_conf() { return; }
|
__find_mongodb_conf() { return; }
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
@@ -526,7 +451,8 @@ __display_user_info() {
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__init_config_etc() {
|
__init_config_etc() {
|
||||||
local copy="no"
|
local copy="no"
|
||||||
local name="$(find "/etc/$SERVICE_NAME" -maxdepth 0 2>/dev/null | head -n1)"
|
local name=""
|
||||||
|
[ -e "/etc/$SERVICE_NAME" ] && name="/etc/$SERVICE_NAME"
|
||||||
local etc_dir="${ETC_DIR:-/etc/$name}"
|
local etc_dir="${ETC_DIR:-/etc/$name}"
|
||||||
local conf_dir="${CONF_DIR:-/config/$name}"
|
local conf_dir="${CONF_DIR:-/config/$name}"
|
||||||
__is_dir_empty "$conf_dir" && copy=yes
|
__is_dir_empty "$conf_dir" && copy=yes
|
||||||
@@ -694,8 +620,8 @@ __find_replace() {
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# /config > /etc
|
# /config > /etc
|
||||||
__copy_templates() {
|
__copy_templates() {
|
||||||
local from="$1" to="$2"
|
local from="$1" to="$2" is_link=""
|
||||||
is_link="$(ls -la "$dest" 2>/dev/null | awk '{print $NF}')"
|
[ -L "$to" ] && is_link="$(readlink "$to")"
|
||||||
[ "$from" != "$is_link" ] || return 0
|
[ "$from" != "$is_link" ] || return 0
|
||||||
if [ -e "$from" ] && __is_dir_empty "$to"; then
|
if [ -e "$from" ] && __is_dir_empty "$to"; then
|
||||||
__file_copy "$from" "$to"
|
__file_copy "$from" "$to"
|
||||||
@@ -705,16 +631,18 @@ __copy_templates() {
|
|||||||
# /config/file > /etc/file
|
# /config/file > /etc/file
|
||||||
__symlink() {
|
__symlink() {
|
||||||
local from="$1" to="$2"
|
local from="$1" to="$2"
|
||||||
if [ -e "$to" ]; then
|
[ -e "$to" ] || return 0
|
||||||
[ -e "$from" ] && __rm "$from"
|
[ "$from" = "$to" ] && return 0
|
||||||
ln -sf "$to" "$from" && echo "Created symlink to $from > $to"
|
__rm "$from"
|
||||||
fi
|
[ -d "${from%/*}" ] || mkdir -p "${from%/*}" 2>/dev/null
|
||||||
|
ln -sf "$to" "$from" && echo "Created symlink to $from > $to"
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__file_copy() {
|
__file_copy() {
|
||||||
local from="$1"
|
local from="$1"
|
||||||
local dest="$2"
|
local dest="$2"
|
||||||
is_link="$(ls -la "$dest" 2>/dev/null | awk '{print $NF}')"
|
local is_link=""
|
||||||
|
[ -L "$dest" ] && is_link="$(readlink "$dest")"
|
||||||
if [ "$from" != "$is_link" ]; then
|
if [ "$from" != "$is_link" ]; then
|
||||||
if [ -n "$from" ] && [ -e "$from" ] && [ -n "$dest" ]; then
|
if [ -n "$from" ] && [ -e "$from" ] && [ -n "$dest" ]; then
|
||||||
if [ -d "$from" ]; then
|
if [ -d "$from" ]; then
|
||||||
@@ -811,12 +739,12 @@ __fix_permissions() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__get_gid() { grep "^$1:" /etc/group 2>/dev/null | awk -F ':' '{print $3}' || return 1; }
|
__get_gid() { awk -F: -v n="$1" '$1==n {print $3; found=1; exit} END {exit !found}' /etc/group 2>/dev/null; }
|
||||||
__get_uid() { grep "^$1:" /etc/passwd 2>/dev/null | awk -F ':' '{print $3}' || return 1; }
|
__get_uid() { awk -F: -v n="$1" '$1==n {print $3; found=1; exit} END {exit !found}' /etc/passwd 2>/dev/null; }
|
||||||
__check_for_uid() { awk -F ':' '{print $3}' /etc/passwd 2>/dev/null | sort -u | grep -q "^$1$" || return 1; }
|
__check_for_uid() { awk -F: -v n="$1" '$3==n {found=1; exit} END {exit !found}' /etc/passwd 2>/dev/null; }
|
||||||
__check_for_guid() { awk -F ':' '{print $3}' /etc/group 2>/dev/null | sort -u | grep -q "^$1$" || return 1; }
|
__check_for_guid() { awk -F: -v n="$1" '$3==n {found=1; exit} END {exit !found}' /etc/group 2>/dev/null; }
|
||||||
__check_for_user() { awk -F ':' '{print $1}' /etc/passwd 2>/dev/null | sort -u | grep -q "^$1$" || return 1; }
|
__check_for_user() { awk -F: -v n="$1" '$1==n {found=1; exit} END {exit !found}' /etc/passwd 2>/dev/null; }
|
||||||
__check_for_group() { awk -F ':' '{print $1}' /etc/group 2>/dev/null | sort -u | grep -q "^$1$" || return 1; }
|
__check_for_group() { awk -F: -v n="$1" '$1==n {found=1; exit} END {exit !found}' /etc/group 2>/dev/null; }
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# check if process is already running
|
# check if process is already running
|
||||||
__proc_check() {
|
__proc_check() {
|
||||||
@@ -837,7 +765,7 @@ __proc_check() {
|
|||||||
check_result=0
|
check_result=0
|
||||||
elif [ -f "$SERVICE_PID_FILE" ]; then
|
elif [ -f "$SERVICE_PID_FILE" ]; then
|
||||||
local pid_from_file
|
local pid_from_file
|
||||||
pid_from_file="$(cat "$SERVICE_PID_FILE" 2>/dev/null || echo "")"
|
pid_from_file=$(<"$SERVICE_PID_FILE") 2>/dev/null
|
||||||
if [ -n "$pid_from_file" ] && kill -0 "$pid_from_file" 2>/dev/null; then
|
if [ -n "$pid_from_file" ] && kill -0 "$pid_from_file" 2>/dev/null; then
|
||||||
check_result=0
|
check_result=0
|
||||||
fi
|
fi
|
||||||
@@ -1021,9 +949,7 @@ __create_env_file() {
|
|||||||
dir="$(dirname "$create_env")"
|
dir="$(dirname "$create_env")"
|
||||||
[ -d "$dir" ] || mkdir -p "$dir"
|
[ -d "$dir" ] || mkdir -p "$dir"
|
||||||
if [ -n "$create_env" ] && [ ! -f "$create_env" ]; then
|
if [ -n "$create_env" ] && [ ! -f "$create_env" ]; then
|
||||||
cat <<EOF | tee -p "$create_env" >/dev/null
|
cp -f "$sample_file" "$create_env"
|
||||||
$(<"$sample_file")
|
|
||||||
EOF
|
|
||||||
fi
|
fi
|
||||||
[ -f "$create_env" ] || envStatus=$((1 + envStatus))
|
[ -f "$create_env" ] || envStatus=$((1 + envStatus))
|
||||||
done
|
done
|
||||||
@@ -1032,17 +958,17 @@ EOF
|
|||||||
}
|
}
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
__exec_command() {
|
__exec_command() {
|
||||||
local bin=""
|
|
||||||
local arg=("$@")
|
local arg=("$@")
|
||||||
local exitCode="0"
|
local exitCode=0
|
||||||
local cmdExec="${arg:-}"
|
local cmdExec="${arg:-}"
|
||||||
local pre_exec="--login -c"
|
local pre_exec="--login -c"
|
||||||
local shell="$(type -P bash 2>/dev/null || type -P dash 2>/dev/null || type -P ash 2>/dev/null || type -P sh 2>/dev/null)"
|
local shell bin prog
|
||||||
bin="$(echo "${arg[*]}" | tr ' ' '\n' | grep -v '^$' | head -n1 | sed 's| ||g' || echo 'bash')"
|
shell=$(type -P bash || type -P dash || type -P ash || type -P sh) 2>/dev/null
|
||||||
|
bin="${arg[0]:-bash}"
|
||||||
prog="$(type -P "$bin" 2>/dev/null || echo "$bin")"
|
prog="$(type -P "$bin" 2>/dev/null || echo "$bin")"
|
||||||
if type -t $bin >/dev/null 2>&1; then
|
if type -t "$bin" &>/dev/null; then
|
||||||
echo "${exec_message:-Executing command: $cmdExec}"
|
echo "${exec_message:-Executing command: $cmdExec}"
|
||||||
eval $shell $pre_exec "$cmdExec" || exitCode=1
|
eval "$shell" $pre_exec "$cmdExec"
|
||||||
exitCode=$?
|
exitCode=$?
|
||||||
elif [ -f "$prog" ]; then
|
elif [ -f "$prog" ]; then
|
||||||
echo "$prog is not executable"
|
echo "$prog is not executable"
|
||||||
@@ -1071,7 +997,9 @@ __start_init_scripts() {
|
|||||||
local critical_failures="0"
|
local critical_failures="0"
|
||||||
local pidFile="/run/.start_init_scripts.pid"
|
local pidFile="/run/.start_init_scripts.pid"
|
||||||
local init_dir="${1:-/usr/local/etc/docker/init.d}"
|
local init_dir="${1:-/usr/local/etc/docker/init.d}"
|
||||||
local init_count="$(ls -A "$init_dir"/* 2>/dev/null | grep -v '\.sample' | wc -l)"
|
local init_files=("$init_dir"/*.sh)
|
||||||
|
local init_count=0
|
||||||
|
[ -e "${init_files[0]}" ] && init_count=${#init_files[@]}
|
||||||
local exit_on_failure="${EXIT_ON_SERVICE_FAILURE:-true}"
|
local exit_on_failure="${EXIT_ON_SERVICE_FAILURE:-true}"
|
||||||
|
|
||||||
# Clean stale PID files from previous runs
|
# Clean stale PID files from previous runs
|
||||||
@@ -1087,7 +1015,10 @@ __start_init_scripts() {
|
|||||||
while :; do echo "Running: $(date)" >"/data/logs/init/keep_alive" && sleep 3600; done &
|
while :; do echo "Running: $(date)" >"/data/logs/init/keep_alive" && sleep 3600; done &
|
||||||
else
|
else
|
||||||
if [ -d "$init_dir" ]; then
|
if [ -d "$init_dir" ]; then
|
||||||
[ -f "$init_dir/service.sample" ] && __rm "$init_dir"/*.sample
|
local sample
|
||||||
|
for sample in "$init_dir"/*.sample; do
|
||||||
|
[ -e "$sample" ] && __rm "$sample"
|
||||||
|
done
|
||||||
chmod -Rf 755 "$init_dir"/*.sh
|
chmod -Rf 755 "$init_dir"/*.sh
|
||||||
|
|
||||||
echo "🚀 Starting container services initialization"
|
echo "🚀 Starting container services initialization"
|
||||||
@@ -1100,7 +1031,7 @@ __start_init_scripts() {
|
|||||||
if [ -x "$init" ]; then
|
if [ -x "$init" ]; then
|
||||||
touch "$pidFile"
|
touch "$pidFile"
|
||||||
name="${init##*/}"
|
name="${init##*/}"
|
||||||
service="$(printf '%s' "$name" | sed 's/^[^-]*-//;s|.sh$||g')"
|
service="${name#*-}"; service="${service%.sh}"
|
||||||
__service_banner "🔧" "Executing service script:" "${init##*/}"
|
__service_banner "🔧" "Executing service script:" "${init##*/}"
|
||||||
# Execute the init script and capture the exit code
|
# Execute the init script and capture the exit code
|
||||||
if source "$init"; then
|
if source "$init"; then
|
||||||
@@ -1129,7 +1060,7 @@ __start_init_scripts() {
|
|||||||
retPID=""
|
retPID=""
|
||||||
local found_process=""
|
local found_process=""
|
||||||
# Try multiple name variants to find the process
|
# Try multiple name variants to find the process
|
||||||
for name_variant in "$service" "${service}84" "${service}d" "$(echo "$service" | sed 's/-//g')" "$(echo "$service" | tr -d '-')"; do
|
for name_variant in "$service" "${service}84" "${service}d" "${service//-/}"; do
|
||||||
if [ -z "$retPID" ]; then
|
if [ -z "$retPID" ]; then
|
||||||
retPID=$(__get_pid "$name_variant" 2>/dev/null || echo "")
|
retPID=$(__get_pid "$name_variant" 2>/dev/null || echo "")
|
||||||
if [ -n "$retPID" ] && [ "$retPID" != "0" ]; then
|
if [ -n "$retPID" ] && [ "$retPID" != "0" ]; then
|
||||||
@@ -1144,7 +1075,7 @@ __start_init_scripts() {
|
|||||||
__service_banner "✅" "Service $service started successfully -" "PID: ${retPID} ($found_process)"
|
__service_banner "✅" "Service $service started successfully -" "PID: ${retPID} ($found_process)"
|
||||||
elif [ -f "$expected_pid_file" ]; then
|
elif [ -f "$expected_pid_file" ]; then
|
||||||
# No running process but PID file exists - verify PID is valid
|
# No running process but PID file exists - verify PID is valid
|
||||||
file_pid="$(cat "$expected_pid_file" 2>/dev/null || echo "")"
|
file_pid=$(<"$expected_pid_file") 2>/dev/null
|
||||||
if [ -n "$file_pid" ] && kill -0 "$file_pid" 2>/dev/null; then
|
if [ -n "$file_pid" ] && kill -0 "$file_pid" 2>/dev/null; then
|
||||||
initStatus="0"
|
initStatus="0"
|
||||||
__service_banner "✅" "Service $service started successfully -" "PID: $file_pid (from file)"
|
__service_banner "✅" "Service $service started successfully -" "PID: $file_pid (from file)"
|
||||||
@@ -1203,14 +1134,14 @@ __setup_mta() {
|
|||||||
local local_hostname="${FULL_DOMAIN_NAME:-}"
|
local local_hostname="${FULL_DOMAIN_NAME:-}"
|
||||||
local account_user="${SERVER_ADMIN//@*/}"
|
local account_user="${SERVER_ADMIN//@*/}"
|
||||||
local account_domain="${EMAIL_DOMAIN//*@/}"
|
local account_domain="${EMAIL_DOMAIN//*@/}"
|
||||||
echo "$EMAIL_RELAY" | grep '[0-9][0-9]' || relay_port="465"
|
[[ $EMAIL_RELAY == *[0-9][0-9]* ]] || relay_port="465"
|
||||||
################# sSMTP relay setup
|
################# sSMTP relay setup
|
||||||
if [ -n "$(type -P 'ssmtp')" ]; then
|
if command -v ssmtp &>/dev/null; then
|
||||||
[ -d "/config/ssmtp" ] || mkdir -p "/config/ssmtp"
|
[ -d "/config/ssmtp" ] || mkdir -p "/config/ssmtp"
|
||||||
[ -f "/etc/ssmtp/ssmtp.conf" ] && __rm "/etc/ssmtp/ssmtp.conf"
|
[ -f "/etc/ssmtp/ssmtp.conf" ] && __rm "/etc/ssmtp/ssmtp.conf"
|
||||||
symlink_files="$(__find_file_relative "/config/ssmtp")"
|
symlink_files="$(__find_file_relative "/config/ssmtp")"
|
||||||
if [ ! -f "/config/ssmtp/ssmtp.conf" ]; then
|
if [ ! -f "/config/ssmtp/ssmtp.conf" ]; then
|
||||||
cat <<EOF | tee -p "/config/ssmtp/ssmtp.conf" >/dev/null
|
cat >"/config/ssmtp/ssmtp.conf" <<EOF
|
||||||
# ssmtp configuration.
|
# ssmtp configuration.
|
||||||
root=${account_user:-root}@${account_domain:-$HOSTNAME}
|
root=${account_user:-root}@${account_domain:-$HOSTNAME}
|
||||||
mailhub=${relay_server:-172.17.0.1}:$relay_port
|
mailhub=${relay_server:-172.17.0.1}:$relay_port
|
||||||
@@ -1244,13 +1175,13 @@ EOF
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
################# postfix relay setup
|
################# postfix relay setup
|
||||||
elif [ -n "$(type -P 'postfix')" ]; then
|
elif command -v postfix &>/dev/null; then
|
||||||
[ -d "/etc/postfix" ] || mkdir -p "/etc/postfix"
|
[ -d "/etc/postfix" ] || mkdir -p "/etc/postfix"
|
||||||
[ -d "/config/postfix" ] || mkdir -p "/config/postfix"
|
[ -d "/config/postfix" ] || mkdir -p "/config/postfix"
|
||||||
[ -f "/etc/postfix/main.cf" ] && __rm "/etc/postfix/main.cf"
|
[ -f "/etc/postfix/main.cf" ] && __rm "/etc/postfix/main.cf"
|
||||||
symlink_files="$(__find_file_relative "/config/postfix")"
|
symlink_files="$(__find_file_relative "/config/postfix")"
|
||||||
if [ ! -f "/config/postfix/main.cf" ]; then
|
if [ ! -f "/config/postfix/main.cf" ]; then
|
||||||
cat <<EOF | tee -p "/config/postfix/main.cf" >/dev/null
|
cat >"/config/postfix/main.cf" <<EOF
|
||||||
# postfix configuration.
|
# postfix configuration.
|
||||||
smtpd_banner = \$myhostname ESMTP email server
|
smtpd_banner = \$myhostname ESMTP email server
|
||||||
compatibility_level = 2
|
compatibility_level = 2
|
||||||
@@ -1401,8 +1332,8 @@ __initialize_system_etc() {
|
|||||||
local file=()
|
local file=()
|
||||||
local directories=""
|
local directories=""
|
||||||
if [ -n "$conf_dir" ] && [ -e "$conf_dir" ]; then
|
if [ -n "$conf_dir" ] && [ -e "$conf_dir" ]; then
|
||||||
files="$(find "$conf_dir"/* -not -path '*/env/*' -type f 2>/dev/null | sed 's|'/config/'||g' | sort -u | grep -v '^$' | grep '.' || false)"
|
files=$(find "$conf_dir"/* -not -path '*/env/*' -type f 2>/dev/null | sort -u | sed 's|/config/||')
|
||||||
directories="$(find "$conf_dir"/* -not -path '*/env/*' -type d 2>/dev/null | sed 's|'/config/'||g' | sort -u | grep -v '^$' | grep '.' || false)"
|
directories=$(find "$conf_dir"/* -not -path '*/env/*' -type d 2>/dev/null | sort -u | sed 's|/config/||')
|
||||||
echo "Copying config files to system: $conf_dir > /etc/${conf_dir//\/config\//}"
|
echo "Copying config files to system: $conf_dir > /etc/${conf_dir//\/config\//}"
|
||||||
if [ -n "$directories" ]; then
|
if [ -n "$directories" ]; then
|
||||||
for d in $directories; do
|
for d in $directories; do
|
||||||
@@ -1559,7 +1490,7 @@ __is_htdocs_mounted() {
|
|||||||
unset IMPORT_FROM_GIT
|
unset IMPORT_FROM_GIT
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -n "$IMPORT_FROM_GIT" ] && [ "$(command -v "git" 2>/dev/null)" ]; then
|
if [ -n "$IMPORT_FROM_GIT" ] && command -v git &>/dev/null; then
|
||||||
if __is_dir_empty "$WWW_ROOT_DIR"; then
|
if __is_dir_empty "$WWW_ROOT_DIR"; then
|
||||||
echo "Importing project from $IMPORT_FROM_GIT to $WWW_ROOT_DIR"
|
echo "Importing project from $IMPORT_FROM_GIT to $WWW_ROOT_DIR"
|
||||||
git clone -q "$IMPORT_FROM_GIT" "$WWW_ROOT_DIR"
|
git clone -q "$IMPORT_FROM_GIT" "$WWW_ROOT_DIR"
|
||||||
@@ -1636,16 +1567,16 @@ __switch_to_user() {
|
|||||||
if [ "$switch_user" = "root" ]; then
|
if [ "$switch_user" = "root" ]; then
|
||||||
su_exec=""
|
su_exec=""
|
||||||
su_cmd() { eval "$@" || return 1; }
|
su_cmd() { eval "$@" || return 1; }
|
||||||
elif [ "$(builtin type -P gosu)" ]; then
|
elif command -v gosu &>/dev/null; then
|
||||||
su_exec="gosu $switch_user"
|
su_exec="gosu $switch_user"
|
||||||
su_cmd() { $su_exec "$@" || return 1; }
|
su_cmd() { $su_exec "$@" || return 1; }
|
||||||
elif [ "$(builtin type -P runuser)" ]; then
|
elif command -v runuser &>/dev/null; then
|
||||||
su_exec="runuser -u $switch_user"
|
su_exec="runuser -u $switch_user"
|
||||||
su_cmd() { $su_exec "$@" || return 1; }
|
su_cmd() { $su_exec "$@" || return 1; }
|
||||||
elif [ "$(builtin type -P sudo)" ]; then
|
elif command -v sudo &>/dev/null; then
|
||||||
su_exec="sudo -u $switch_user"
|
su_exec="sudo -u $switch_user"
|
||||||
su_cmd() { $su_exec "$@" || return 1; }
|
su_cmd() { $su_exec "$@" || return 1; }
|
||||||
elif [ "$(builtin type -P su)" ]; then
|
elif command -v su &>/dev/null; then
|
||||||
su_exec="su -s /bin/sh - $switch_user"
|
su_exec="su -s /bin/sh - $switch_user"
|
||||||
su_cmd() { $su_exec -c "$@" || return 1; }
|
su_cmd() { $su_exec -c "$@" || return 1; }
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
##@Version : 202602061352-git
|
##@Version : 202605131434-git
|
||||||
# @@Author : Jason Hempstead
|
# @@Author : Jason Hempstead
|
||||||
# @@Contact : jason@casjaysdev.pro
|
# @@Contact : jason@casjaysdev.pro
|
||||||
# @@License : WTFPL
|
# @@License : WTFPL
|
||||||
@@ -98,9 +98,8 @@ if [ ! -f "/run/.start_init_scripts.pid" ]; then
|
|||||||
fi
|
fi
|
||||||
# Clean up any stale PID file for this service on startup
|
# Clean up any stale PID file for this service on startup
|
||||||
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
|
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
|
||||||
old_pid=$(cat "/run/init.d/$SERVICE_NAME.pid" 2>/dev/null)
|
old_pid=$(<"/run/init.d/$SERVICE_NAME.pid") 2>/dev/null
|
||||||
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then
|
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then
|
||||||
echo "🧹 Removing stale PID file for $SERVICE_NAME"
|
|
||||||
rm -f "/run/init.d/$SERVICE_NAME.pid"
|
rm -f "/run/init.d/$SERVICE_NAME.pid"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -140,7 +139,7 @@ LOG_DIR="/data/logs/tor"
|
|||||||
WORK_DIR=""
|
WORK_DIR=""
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# port which service is listening on
|
# port which service is listening on
|
||||||
SERVICE_PORT="9053"
|
SERVICE_PORT=""
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# User to use to launch service - IE: postgres
|
# User to use to launch service - IE: postgres
|
||||||
# normally root
|
# normally root
|
||||||
@@ -391,7 +390,7 @@ __post_execute() {
|
|||||||
__banner "$postMessageEnd: Status $retVal"
|
__banner "$postMessageEnd: Status $retVal"
|
||||||
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
||||||
pid=$!
|
pid=$!
|
||||||
if ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$"; then
|
if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
|
||||||
retVal=0
|
retVal=0
|
||||||
else
|
else
|
||||||
retVal=10
|
retVal=10
|
||||||
@@ -535,11 +534,9 @@ __run_start_script() {
|
|||||||
fi
|
fi
|
||||||
if [ -n "$SERVICE_PORT" ]; then
|
if [ -n "$SERVICE_PORT" ]; then
|
||||||
__log_info "$name will be running on port $SERVICE_PORT"
|
__log_info "$name will be running on port $SERVICE_PORT"
|
||||||
else
|
|
||||||
SERVICE_PORT="9053"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then
|
if [ -n "$pre" ] && command -v "$pre" &>/dev/null; then
|
||||||
export cmd_exec="$pre $cmd $args"
|
export cmd_exec="$pre $cmd $args"
|
||||||
message="Starting service: $name $args through $pre"
|
message="Starting service: $name $args through $pre"
|
||||||
else
|
else
|
||||||
@@ -571,9 +568,14 @@ execute_command="$execute_command"
|
|||||||
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
||||||
execPid=\$!
|
execPid=\$!
|
||||||
sleep 1
|
sleep 1
|
||||||
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)"
|
if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
|
||||||
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10
|
echo "\$execPid" >"\$SERVICE_PID_FILE"
|
||||||
[ "\$retVal" = 0 ] && printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME" || echo "Failed to start $execute_command" >&2
|
retVal=0
|
||||||
|
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
|
||||||
|
else
|
||||||
|
retVal=10
|
||||||
|
echo "Failed to start $execute_command" >&2
|
||||||
|
fi
|
||||||
exit \$retVal
|
exit \$retVal
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
##@Version : 202602061352-git
|
##@Version : 202605131434-git
|
||||||
# @@Author : Jason Hempstead
|
# @@Author : Jason Hempstead
|
||||||
# @@Contact : jason@casjaysdev.pro
|
# @@Contact : jason@casjaysdev.pro
|
||||||
# @@License : WTFPL
|
# @@License : WTFPL
|
||||||
@@ -98,9 +98,9 @@ if [ ! -f "/run/.start_init_scripts.pid" ]; then
|
|||||||
fi
|
fi
|
||||||
# Clean up any stale PID file for this service on startup
|
# Clean up any stale PID file for this service on startup
|
||||||
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
|
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
|
||||||
old_pid=$(cat "/run/init.d/$SERVICE_NAME.pid" 2>/dev/null)
|
old_pid=$(<"/run/init.d/$SERVICE_NAME.pid") 2>/dev/null
|
||||||
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then
|
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then
|
||||||
echo "🧹 Removing stale PID file for $SERVICE_NAME"
|
echo "Removing stale PID file for $SERVICE_NAME"
|
||||||
rm -f "/run/init.d/$SERVICE_NAME.pid"
|
rm -f "/run/init.d/$SERVICE_NAME.pid"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -497,7 +497,7 @@ EOF
|
|||||||
file_name="$(basename "$dns_file")"
|
file_name="$(basename "$dns_file")"
|
||||||
domain_name="$(basename "${dns_file%.*}")"
|
domain_name="$(basename "${dns_file%.*}")"
|
||||||
if [ -n "$domain_name" ]; then
|
if [ -n "$domain_name" ]; then
|
||||||
cat "$dns_file" | sed 's|REPLACE_VAR_DIR|'$VAR_DIR'|g' >>"$DNS_ZONE_FILE"
|
sed 's|REPLACE_VAR_DIR|'"$VAR_DIR"'|g' "$dns_file" >>"$DNS_ZONE_FILE"
|
||||||
grep -qs "$domain_name" "$DNS_ZONE_FILE" && echo "Secondary $domain_name to $DNS_ZONE_FILE"
|
grep -qs "$domain_name" "$DNS_ZONE_FILE" && echo "Secondary $domain_name to $DNS_ZONE_FILE"
|
||||||
else
|
else
|
||||||
echo "Failed to get domain name from $dns_file" | tee -a "$LOG_DIR/init.txt" >&2
|
echo "Failed to get domain name from $dns_file" | tee -a "$LOG_DIR/init.txt" >&2
|
||||||
@@ -546,7 +546,7 @@ __post_execute() {
|
|||||||
__banner "$postMessageEnd: Status $retVal"
|
__banner "$postMessageEnd: Status $retVal"
|
||||||
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
||||||
pid=$!
|
pid=$!
|
||||||
if ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$"; then
|
if kill -0 "$pid" 2>/dev/null; then
|
||||||
retVal=0
|
retVal=0
|
||||||
else
|
else
|
||||||
retVal=10
|
retVal=10
|
||||||
@@ -690,11 +690,9 @@ __run_start_script() {
|
|||||||
fi
|
fi
|
||||||
if [ -n "$SERVICE_PORT" ]; then
|
if [ -n "$SERVICE_PORT" ]; then
|
||||||
__log_info "$name will be running on port $SERVICE_PORT"
|
__log_info "$name will be running on port $SERVICE_PORT"
|
||||||
else
|
|
||||||
SERVICE_PORT="53"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then
|
if [ -n "$pre" ] && command -v "$pre" &>/dev/null; then
|
||||||
export cmd_exec="$pre $cmd $args"
|
export cmd_exec="$pre $cmd $args"
|
||||||
message="Starting service: $name $args through $pre"
|
message="Starting service: $name $args through $pre"
|
||||||
else
|
else
|
||||||
@@ -726,9 +724,14 @@ execute_command="$execute_command"
|
|||||||
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
||||||
execPid=\$!
|
execPid=\$!
|
||||||
sleep 1
|
sleep 1
|
||||||
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)"
|
if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
|
||||||
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10
|
echo "\$execPid" >"\$SERVICE_PID_FILE"
|
||||||
[ "\$retVal" = 0 ] && printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME" || echo "Failed to start $execute_command" >&2
|
retVal=0
|
||||||
|
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
|
||||||
|
else
|
||||||
|
retVal=10
|
||||||
|
echo "Failed to start $execute_command" >&2
|
||||||
|
fi
|
||||||
exit \$retVal
|
exit \$retVal
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
@@ -752,9 +755,14 @@ execute_command="$execute_command"
|
|||||||
\$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
\$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
||||||
execPid=\$!
|
execPid=\$!
|
||||||
sleep 1
|
sleep 1
|
||||||
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)"
|
if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
|
||||||
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10
|
echo "\$execPid" >"\$SERVICE_PID_FILE"
|
||||||
[ "\$retVal" = 0 ] || echo "Failed to start $execute_command" >&2
|
retVal=0
|
||||||
|
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
|
||||||
|
else
|
||||||
|
retVal=10
|
||||||
|
echo "Failed to start $execute_command" >&2
|
||||||
|
fi
|
||||||
exit \$retVal
|
exit \$retVal
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
##@Version : 202602061352-git
|
##@Version : 202605131434-git
|
||||||
# @@Author : Jason Hempstead
|
# @@Author : Jason Hempstead
|
||||||
# @@Contact : jason@casjaysdev.pro
|
# @@Contact : jason@casjaysdev.pro
|
||||||
# @@License : WTFPL
|
# @@License : WTFPL
|
||||||
@@ -98,9 +98,9 @@ if [ ! -f "/run/.start_init_scripts.pid" ]; then
|
|||||||
fi
|
fi
|
||||||
# Clean up any stale PID file for this service on startup
|
# Clean up any stale PID file for this service on startup
|
||||||
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
|
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
|
||||||
old_pid=$(cat "/run/init.d/$SERVICE_NAME.pid" 2>/dev/null)
|
old_pid=$(<"/run/init.d/$SERVICE_NAME.pid") 2>/dev/null
|
||||||
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then
|
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then
|
||||||
echo "🧹 Removing stale PID file for $SERVICE_NAME"
|
echo "Removing stale PID file for $SERVICE_NAME"
|
||||||
rm -f "/run/init.d/$SERVICE_NAME.pid"
|
rm -f "/run/init.d/$SERVICE_NAME.pid"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -389,7 +389,7 @@ __post_execute() {
|
|||||||
__banner "$postMessageEnd: Status $retVal"
|
__banner "$postMessageEnd: Status $retVal"
|
||||||
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
||||||
pid=$!
|
pid=$!
|
||||||
if ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$"; then
|
if kill -0 "$pid" 2>/dev/null; then
|
||||||
retVal=0
|
retVal=0
|
||||||
else
|
else
|
||||||
retVal=10
|
retVal=10
|
||||||
@@ -533,11 +533,9 @@ __run_start_script() {
|
|||||||
fi
|
fi
|
||||||
if [ -n "$SERVICE_PORT" ]; then
|
if [ -n "$SERVICE_PORT" ]; then
|
||||||
__log_info "$name will be running on port $SERVICE_PORT"
|
__log_info "$name will be running on port $SERVICE_PORT"
|
||||||
else
|
|
||||||
SERVICE_PORT="80"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then
|
if [ -n "$pre" ] && command -v "$pre" &>/dev/null; then
|
||||||
export cmd_exec="$pre $cmd $args"
|
export cmd_exec="$pre $cmd $args"
|
||||||
message="Starting service: $name $args through $pre"
|
message="Starting service: $name $args through $pre"
|
||||||
else
|
else
|
||||||
@@ -569,9 +567,14 @@ execute_command="$execute_command"
|
|||||||
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
||||||
execPid=\$!
|
execPid=\$!
|
||||||
sleep 1
|
sleep 1
|
||||||
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)"
|
if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
|
||||||
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10
|
echo "\$execPid" >"\$SERVICE_PID_FILE"
|
||||||
[ "\$retVal" = 0 ] && printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME" || echo "Failed to start $execute_command" >&2
|
retVal=0
|
||||||
|
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
|
||||||
|
else
|
||||||
|
retVal=10
|
||||||
|
echo "Failed to start $execute_command" >&2
|
||||||
|
fi
|
||||||
exit \$retVal
|
exit \$retVal
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
@@ -595,9 +598,14 @@ execute_command="$execute_command"
|
|||||||
\$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
\$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
||||||
execPid=\$!
|
execPid=\$!
|
||||||
sleep 1
|
sleep 1
|
||||||
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)"
|
if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
|
||||||
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10
|
echo "\$execPid" >"\$SERVICE_PID_FILE"
|
||||||
[ "\$retVal" = 0 ] || echo "Failed to start $execute_command" >&2
|
retVal=0
|
||||||
|
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
|
||||||
|
else
|
||||||
|
retVal=10
|
||||||
|
echo "Failed to start $execute_command" >&2
|
||||||
|
fi
|
||||||
exit \$retVal
|
exit \$retVal
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
##@Version : 202602061352-git
|
##@Version : 202605131434-git
|
||||||
# @@Author : Jason Hempstead
|
# @@Author : Jason Hempstead
|
||||||
# @@Contact : jason@casjaysdev.pro
|
# @@Contact : jason@casjaysdev.pro
|
||||||
# @@License : WTFPL
|
# @@License : WTFPL
|
||||||
@@ -98,9 +98,9 @@ if [ ! -f "/run/.start_init_scripts.pid" ]; then
|
|||||||
fi
|
fi
|
||||||
# Clean up any stale PID file for this service on startup
|
# Clean up any stale PID file for this service on startup
|
||||||
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
|
if [ -n "$SERVICE_NAME" ] && [ -f "/run/init.d/$SERVICE_NAME.pid" ]; then
|
||||||
old_pid=$(cat "/run/init.d/$SERVICE_NAME.pid" 2>/dev/null)
|
old_pid=$(<"/run/init.d/$SERVICE_NAME.pid") 2>/dev/null
|
||||||
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then
|
if [ -n "$old_pid" ] && ! kill -0 "$old_pid" 2>/dev/null; then
|
||||||
echo "🧹 Removing stale PID file for $SERVICE_NAME"
|
echo "Removing stale PID file for $SERVICE_NAME"
|
||||||
rm -f "/run/init.d/$SERVICE_NAME.pid"
|
rm -f "/run/init.d/$SERVICE_NAME.pid"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -389,7 +389,7 @@ __post_execute() {
|
|||||||
__banner "$postMessageEnd: Status $retVal"
|
__banner "$postMessageEnd: Status $retVal"
|
||||||
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
) 2>"/dev/stderr" | tee -p -a "/data/logs/init.txt" &
|
||||||
pid=$!
|
pid=$!
|
||||||
if ps ax | awk '{print $1}' | grep -v grep | grep -q "$execPid$"; then
|
if kill -0 "$pid" 2>/dev/null; then
|
||||||
retVal=0
|
retVal=0
|
||||||
else
|
else
|
||||||
retVal=10
|
retVal=10
|
||||||
@@ -533,11 +533,9 @@ __run_start_script() {
|
|||||||
fi
|
fi
|
||||||
if [ -n "$SERVICE_PORT" ]; then
|
if [ -n "$SERVICE_PORT" ]; then
|
||||||
__log_info "$name will be running on port $SERVICE_PORT"
|
__log_info "$name will be running on port $SERVICE_PORT"
|
||||||
else
|
|
||||||
SERVICE_PORT="9000"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -n "$pre" ] && [ -n "$(command -v "$pre" 2>/dev/null)" ]; then
|
if [ -n "$pre" ] && command -v "$pre" &>/dev/null; then
|
||||||
export cmd_exec="$pre $cmd $args"
|
export cmd_exec="$pre $cmd $args"
|
||||||
message="Starting service: $name $args through $pre"
|
message="Starting service: $name $args through $pre"
|
||||||
else
|
else
|
||||||
@@ -569,9 +567,14 @@ execute_command="$execute_command"
|
|||||||
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
\$execute_command 2>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
||||||
execPid=\$!
|
execPid=\$!
|
||||||
sleep 1
|
sleep 1
|
||||||
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)"
|
if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
|
||||||
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10
|
echo "\$execPid" >"\$SERVICE_PID_FILE"
|
||||||
[ "\$retVal" = 0 ] && printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME" || echo "Failed to start $execute_command" >&2
|
retVal=0
|
||||||
|
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
|
||||||
|
else
|
||||||
|
retVal=10
|
||||||
|
echo "Failed to start $execute_command" >&2
|
||||||
|
fi
|
||||||
exit \$retVal
|
exit \$retVal
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
@@ -595,9 +598,14 @@ execute_command="$execute_command"
|
|||||||
\$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
\$execute_command 2>>"/dev/stderr" >>"\$LOG_DIR/\$SERVICE_NAME.log" &
|
||||||
execPid=\$!
|
execPid=\$!
|
||||||
sleep 1
|
sleep 1
|
||||||
checkPID="\$(ps ax | awk '{print \$1}' | grep -v grep | grep "\$execPid$" || false)"
|
if [ -n "\$execPid" ] && kill -0 "\$execPid" 2>/dev/null; then
|
||||||
[ -n "\$execPid" ] && [ -n "\$checkPID" ] && echo "\$execPid" >"\$SERVICE_PID_FILE" && retVal=0 || retVal=10
|
echo "\$execPid" >"\$SERVICE_PID_FILE"
|
||||||
[ "\$retVal" = 0 ] || echo "Failed to start $execute_command" >&2
|
retVal=0
|
||||||
|
printf '%s\n' "\$SERVICE_NAME: \$execPid" >"/run/healthcheck/\$SERVICE_NAME"
|
||||||
|
else
|
||||||
|
retVal=10
|
||||||
|
echo "Failed to start $execute_command" >&2
|
||||||
|
fi
|
||||||
exit \$retVal
|
exit \$retVal
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user