reload_flag=""
if [[ -n "${DEBUG}" ]]; then
reload_flag="--reload"
fi
if [[ -n "${WORKER_COUNT}" ]]; then
workers=${WORKER_COUNT}
else
workers=2
fi
gunicorn --workers ${workers} \
--bind 0.0.0.0:8000 \
${reload_flag} main.wsgi
Писали такие конструкции чтобы проверить наличие флага и сформировать команду правильно?
На самом деле можно сделать тоже самое проще. Для этого используются операторы условной подстановки, доступные в оболочках семейства POSIX.
:- для установки значений по умолчанию
${WORKER_COUNT:-2}
Если переменная не объявлена, то будет дефолтное значение 2.
:+ подставляет указанный текст, если переменная не пуста
${DEBUG:+--reload}
Если что-то есть в переменной то распечатается текст после символа +, в противном случае - ничего. Удобно для опциональных флагов, как в нашем примере.
Итого наш скрипт может выглядеть так:
gunicorn --workers ${WORKER_COUNT:-2} \
--bind 0.0.0.0:8000 \
${DEBUG:+--reload} main.wsgi
Есть еще два оператора.
:= не только подставить дефолтное значение, но и присвоить его переменной, если она пуста
# никаких переменных еще нет
VAL1=${VAL2:=hello}
# теперь доступны обе
echo $VAL1 $VAL2
# hello hello
:? остановить выполнение с ошибкой, если переменной нет.
echo ${MISS:?is required}
bash: MISS: is required
Код выхода будет 1.
#tricks#linux
[$] Asterinas: a new Linux-compatible kernel project
中国南方科技大学团队开发了名为Asterinas的新型Linux兼容内核项目。该项目采用Rust语言编写,基于"框架内核架构"设计理念,试图融合单体内核与微内核的优势。
Asterinas与Rust for Linux项目有部分目标重叠,但采取了不同的技术路线。该项目保持与Linux ABI兼容,旨在通过Rust语言的安全特性提升系统可靠性。
原文链接:https://lwn.net/Articles/1022920/
#Linux#操作系统#Rust#内核开发#开源项目
#AIGC
Read more
The Award for Excellence in Open Source goes to Greg Kroah-Hartman
欧洲开源学院(European Open Source Academy)将2026年度“开源卓越奖”授予了Greg Kroah-Hartman。该奖项去年的获奖者Daniel Stenberg负责了今年的颁奖。
颁奖词中强调,Greg在Linux内核方面的工作至关重要。虽然软件创新常吸引眼球,但稳定性才是保障生命和生计的关键。每一部安卓手机、每一台网络服务器、每一个运行Linux的关键系统,都依赖于Greg一丝不苟的工作。他确保了医院、银行、政府和个人在依赖Linux时,系统不会令他们失望。他的工作代表了最高形式的服务:不张扬、不懈努力且不可或缺。
原文链接:https://lwn.net/Articles/1056699/
#Linux#开源#内核维护#GregKroahHartman
#AIGC
Read more
Freedesktop.org now hosts the Filesystem Hierarchy Standard
文件系统层次结构标准(FHS)现已由Freedesktop.org托管和管理。FHS定义了POSIX操作系统如何组织系统和用户数据,被Linux、BSD及其他遵循POSIX规范的系统广泛采用。这一变动结束了此前关于FHS未来发展的讨论。
新规范页面可在此查看:https://specifications.freedesktop.org/fhs/latest/
#Linux#POSIX#文件系统标准#开源
#AIGC
Read more
Proxmox: привязка CPU к виртуальным машинам
Не всегда очевидно, зачем вообще нужна привязка CPU к виртуальным машинам, особенно если речь идёт о небольших развертываниях - там этот параметр чаще всего просто игнорируют. Но в реальном продакшене использование CPU affinity становится действительно важным для повышения производительности виртуалок.
https://telegra.ph/Proxmox-privyazka-CPU-k-virtualnym-mashinam-09-03
#ит_статьи#devops#proxmox#linux#numa
📰 In a Big Move to Linux Security, Debian Makes Reproducible Builds Mandatory
Packages that can't be rebuilt byte-for-byte are now blocked from entering Debian's testing branch.
🔗 Source: https://feed.itsfoss.com/link/24361/17338477/debian-makes-reproducible-builds-mandatory
#debian#linux
📰 MX Linux 25.2 Enters Public Beta Testing with New Text Mode Installer
MX Linux 25.2 is now available for public beta testing based on the Debian 13.4 release and featuring a new text mode installer, as well as numerous other installer improvements.
🔗 Source: https://9to5linux.com/mx-linux-25-2-enters-public-beta-testing-with-new-text-mode-installer
#debian#linux