From 9f72815ed7c1107f83aa9795b0f262792f3051ef Mon Sep 17 00:00:00 2001 From: MickLesk Date: Fri, 22 May 2026 08:02:40 +0200 Subject: [PATCH] Suppress MOTD for non-interactive shells Prevent profile scripts from printing the MOTD in non-interactive contexts. Add a tty check ([ -t 1 ] || return 0) to the generated /etc/profile.d/00_lxc-details.sh in alpine-install.func and install.func so the banner only shows for interactive sessions. In core.func, source /etc/profile.d/*.sh with stdout redirected to /dev/null so environment/PATH exports still apply but any banner output is suppressed when loading profiles programmatically. --- misc/alpine-install.func | 3 ++- misc/core.func | 6 ++++-- misc/install.func | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/misc/alpine-install.func b/misc/alpine-install.func index 47935947f..874558e2f 100644 --- a/misc/alpine-install.func +++ b/misc/alpine-install.func @@ -183,7 +183,8 @@ motd_ssh() { PROFILE_FILE="/etc/profile.d/00_lxc-details.sh" - echo "echo -e \"\"" >"$PROFILE_FILE" + echo "[ -t 1 ] || return 0" >"$PROFILE_FILE" + echo "echo -e \"\"" >>"$PROFILE_FILE" echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >>"$PROFILE_FILE" echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >>"$PROFILE_FILE" echo "echo \"\"" >>"$PROFILE_FILE" diff --git a/misc/core.func b/misc/core.func index d574a16b4..e209ae1fe 100644 --- a/misc/core.func +++ b/misc/core.func @@ -140,10 +140,12 @@ ensure_profile_loaded() { [[ -n "${_PROFILE_LOADED:-}" ]] && return command -v pveversion &>/dev/null && return - # Source all profile.d scripts to ensure PATH is complete + # Source all profile.d scripts to ensure PATH is complete. + # Redirect stdout to suppress banner/MOTD output (e.g. 00_lxc-details.sh) + # while still allowing env/PATH exports to take effect. if [[ -d /etc/profile.d ]]; then for script in /etc/profile.d/*.sh; do - [[ -r "$script" ]] && source "$script" || true + [[ -r "$script" ]] && source "$script" >/dev/null || true done fi diff --git a/misc/install.func b/misc/install.func index baeac2d76..abb245dd9 100644 --- a/misc/install.func +++ b/misc/install.func @@ -456,7 +456,8 @@ motd_ssh() { PROFILE_FILE="/etc/profile.d/00_lxc-details.sh" - echo "echo -e \"\"" >"$PROFILE_FILE" + echo "[ -t 1 ] || return 0" >"$PROFILE_FILE" + echo "echo -e \"\"" >>"$PROFILE_FILE" echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >>"$PROFILE_FILE" echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >>"$PROFILE_FILE" echo "echo \"\"" >>"$PROFILE_FILE"