From f2c4cd72c56bf2a35ddda8a69af70d74b69bce99 Mon Sep 17 00:00:00 2001 From: zhaoyingzhen Date: Wed, 4 Feb 2026 11:24:44 +0800 Subject: [PATCH] fix: avoid error messages when service condition checks fail Use ConditionEnvironment instead of ExecCondition for environment variable checks. This prevents the service from being marked as failed when the condition is not met. Changes: - Add ConditionEnvironment=DDE_QUICKLOGIN=true to [Unit] section - Add ConditionEnvironment=XDG_SESSION_TYPE=%I to [Unit] section - Remove ExecCondition shell script checks - Apply the same fix to dde-version-checker@quick-login.service This resolves the issue where systemd would report 'Failed to start' error messages when the quick login conditions were not satisfied, which could also trigger unwanted restart loops. Log: avoid error messages when service condition checks fail Pms: BUG-349919 --- .../dde-quick-login@x11.service | 7 ++++--- .../dde-version-checker@quick-login.service | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/systemd/dde-session-pre.target.wants/dde-quick-login@x11.service b/systemd/dde-session-pre.target.wants/dde-quick-login@x11.service index 92e3851..9ff47a4 100644 --- a/systemd/dde-session-pre.target.wants/dde-quick-login@x11.service +++ b/systemd/dde-session-pre.target.wants/dde-quick-login@x11.service @@ -8,15 +8,16 @@ After=dde-session@x11.service PartOf=dde-session-pre.target Before=dde-session-pre.target +# only in quick login mode and x11 +ConditionEnvironment=DDE_QUICKLOGIN=true +ConditionEnvironment=XDG_SESSION_TYPE=%I + # SuccessExitStatus=0,launch dde-lock.service OnSuccess=dde-lock.service dde-version-checker@quick-login.service dde-autostart@quick-login.service [Service] Slice=session.slice Type=notify -# only in quick login mode and x11 -ExecCondition=/bin/sh -c '[ "$DDE_QUICKLOGIN" = "true" ] || exit 255' -ExecCondition=/bin/sh -c '[ "$XDG_SESSION_TYPE" = "%I" ] || exit 255' ExecStart=/usr/bin/dde-quick-login SuccessExitStatus=0 Restart=on-failure diff --git a/tools/dde-version-checker/dde-version-checker@quick-login.service b/tools/dde-version-checker/dde-version-checker@quick-login.service index 38038b1..15a1636 100644 --- a/tools/dde-version-checker/dde-version-checker@quick-login.service +++ b/tools/dde-version-checker/dde-version-checker@quick-login.service @@ -2,6 +2,9 @@ Description=dde-version-checker service (after quick login) CollectMode=inactive-or-failed +# only in quick login mode +ConditionEnvironment=DDE_QUICKLOGIN=true + [Service] Type=simple ExecStart=/usr/bin/dde-version-checker