Set ulimit (#19086)

* Add script to set ulimits in case they are too low

* Run the script

* Set version

* Set limit if it is too low
This commit is contained in:
Nicolas Mowen 2025-07-10 08:48:42 -06:00 committed by GitHub
parent f29cf43f52
commit 213dc97c17
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 29 additions and 1 deletions

View File

@ -1,7 +1,7 @@
default_target: local
COMMIT_HASH := $(shell git log -1 --pretty=format:"%h"|tail -1)
VERSION = 0.15.0
VERSION = 0.15.2
IMAGE_REPO ?= ghcr.io/blakeblackshear/frigate
GITHUB_REF_NAME ?= $(shell git rev-parse --abbrev-ref HEAD)
BOARDS= #Initialized empty

View File

@ -50,6 +50,7 @@ function set_libva_version() {
echo "[INFO] Preparing Frigate..."
migrate_db_path
set_libva_version
/usr/local/ulimit/set_ulimit.sh
echo "[INFO] Starting Frigate..."
cd /opt/frigate || echo "[ERROR] Failed to change working directory to /opt/frigate"

View File

@ -0,0 +1,27 @@
#!/bin/bash
# Newer versions of containerd 2.X+ impose a very low soft file limit of 1024
# This applies to OSs like HA OS (see https://github.com/home-assistant/operating-system/issues/4110)
# Attempt to increase this limit
# Get current soft and hard nofile limits
current_soft_limit=$(ulimit -Sn)
current_hard_limit=$(ulimit -Hn)
TARGET_SOFT_LIMIT=65536
TARGET_HARD_LIMIT=65536
if [ "$current_soft_limit" -lt "$TARGET_SOFT_LIMIT" ]; then
# Attempt to set both soft and hard limits to the new value
# This requires sufficient privileges (e.g., running as root in the container)
if ulimit -n "$TARGET_SOFT_LIMIT:$TARGET_HARD_LIMIT"; then
new_soft_limit=$(ulimit -Sn)
new_hard_limit=$(ulimit -Hn)
if [ "$new_soft_limit" -ne "$TARGET_SOFT_LIMIT" ] || [ "$new_hard_limit" -ne "$TARGET_HARD_LIMIT" ]; then
echo "Warning: Limits were set, but not to the exact target values. Check system constraints."
fi
else
echo "Error: Failed to set new nofile limits."
fi
fi