mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-13 03:17:54 +08:00
125 lines
3.6 KiB
Bash
125 lines
3.6 KiB
Bash
#!/bin/sh /etc/rc.common
|
|
|
|
START=99
|
|
USE_PROCD=1
|
|
NAME=beszel-agent
|
|
PROG=/usr/bin/beszel-agent
|
|
|
|
append_fs() {
|
|
local value="$1"
|
|
if [ -z "$FS_LIST" ]; then
|
|
FS_LIST="$value"
|
|
else
|
|
FS_LIST="$FS_LIST,$value"
|
|
fi
|
|
}
|
|
|
|
append_nic() {
|
|
local value="$1"
|
|
if [ -z "$NIC_LIST" ]; then
|
|
NIC_LIST="$value"
|
|
else
|
|
NIC_LIST="$NIC_LIST,$value"
|
|
fi
|
|
}
|
|
|
|
boot() {
|
|
local delay
|
|
delay="$(uci -q get $NAME.@main.boot_delay)"
|
|
sleep "${delay:-15}"
|
|
start "$@"
|
|
}
|
|
|
|
start_service() {
|
|
local enable data_dir docker_host gpu_collector hub_url intel_gpu_device key listen log_level port token skip_gpu skip_systemd system_name
|
|
|
|
config_load "$NAME"
|
|
|
|
config_get_bool enable "main" "enable" 0
|
|
[ "$enable" -eq 1 ] || return 0
|
|
|
|
config_get data_dir "main" "data_dir" "/etc/beszel-agent"
|
|
config_get docker_host "main" "docker_host" ""
|
|
config_get gpu_collector "main" "gpu_collector" ""
|
|
config_get hub_url "main" "hub_url" ""
|
|
config_get intel_gpu_device "main" "intel_gpu_device" ""
|
|
config_get key "main" "key" ""
|
|
config_get listen "main" "listen" ""
|
|
config_get log_level "main" "log_level" "info"
|
|
config_get port "main" "port" "45876"
|
|
config_get skip_gpu "main" "skip_gpu" "false"
|
|
case "$(uname -m)" in
|
|
x86_64|i?86)
|
|
if ! ls /sys/class/drm/card[0-9]* >/dev/null 2>&1; then
|
|
skip_gpu="true"
|
|
fi
|
|
;;
|
|
*)
|
|
skip_gpu="true"
|
|
;;
|
|
esac
|
|
config_get skip_systemd "main" "skip_systemd" "false"
|
|
config_get system_name "main" "system_name" ""
|
|
config_get token "main" "token" ""
|
|
|
|
if [ -n "$data_dir" ]; then
|
|
mkdir -p "$data_dir"
|
|
if [ -f /etc/sysupgrade.conf ]; then
|
|
if ! grep -qFx "$data_dir" /etc/sysupgrade.conf; then
|
|
echo "$data_dir" >> /etc/sysupgrade.conf
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
FS_LIST=""
|
|
config_list_foreach "main" "extra_filesystems" append_fs
|
|
|
|
NIC_LIST=""
|
|
config_list_foreach "main" "nics" append_nic
|
|
|
|
procd_open_instance "beszel-agent"
|
|
procd_set_param command "$PROG"
|
|
|
|
procd_set_param env HOST_PROC="/proc" HOST_SYS="/sys"
|
|
|
|
if [ -n "$listen" ]; then
|
|
procd_append_param env LISTEN="$listen"
|
|
else
|
|
procd_append_param env PORT="$port"
|
|
fi
|
|
|
|
[ -n "$docker_host" ] && procd_append_param env DOCKER_HOST="$docker_host"
|
|
[ -n "$data_dir" ] && procd_append_param env DATA_DIR="$data_dir"
|
|
[ -n "$FS_LIST" ] && procd_append_param env EXTRA_FILESYSTEMS="$FS_LIST"
|
|
[ -n "$hub_url" ] && procd_append_param env HUB_URL="$hub_url"
|
|
[ -n "$key" ] && procd_append_param env KEY="$key"
|
|
[ -n "$log_level" ] && procd_append_param env LOG_LEVEL="$log_level"
|
|
[ -n "$NIC_LIST" ] && procd_append_param env NICS="$NIC_LIST"
|
|
[ -n "$skip_gpu" ] && procd_append_param env SKIP_GPU="$skip_gpu"
|
|
[ -n "$skip_systemd" ] && procd_append_param env SKIP_SYSTEMD="$skip_systemd"
|
|
[ -n "$system_name" ] && procd_append_param env SYSTEM_NAME="$system_name"
|
|
[ -n "$token" ] && procd_append_param env TOKEN="$token"
|
|
|
|
if [ "$skip_gpu" = "false" ]; then
|
|
[ -n "$gpu_collector" ] && procd_append_param env GPU_COLLECTOR="$gpu_collector"
|
|
if [ "$gpu_collector" = "intel_gpu_top" ] || [ -z "$gpu_collector" ]; then
|
|
[ -n "$intel_gpu_device" ] && procd_append_param env INTEL_GPU_DEVICE="$intel_gpu_device"
|
|
fi
|
|
fi
|
|
|
|
procd_set_param stdout 1
|
|
procd_set_param stderr 1
|
|
|
|
procd_set_param respawn
|
|
procd_close_instance
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger "beszel-agent"
|
|
}
|
|
|
|
reload_service() {
|
|
stop
|
|
start
|
|
}
|