Files
fedora-OEMDRV/client_software/0010_kwallet/user_run.sh
T
Daniel unbrot Pätzold 5b13ea7372 kwallet: treat exit code 1 as success in kwalletd6-logon.service
kwalletd6 exits with code 1 when the Wayland compositor shuts down
during logout. Without SuccessExitStatus=1, the service is marked
failed and ExecStop (the bind mount umount) never runs. Treating
exit code 1 as success keeps the service in active-exited state so
systemd fires ExecStop cleanly on session end.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 11:49:12 +02:00

55 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Restart and test Kwallet- Service
#Check Token
if [ "${DAVTOKEN_USER}." == "." ]; then
echo "Error: Script cannot be executed standalone and needs a prereserved environment from sync_client_software.sh. Quit."
exit 1
fi
# Vars
WALLETAPPID="sys_config_wallet_script"
WALLETNAME="kdewallet"
if [[ -z $(wmctrl -m | grep "KWin") ]]; then
# No KDE here - Cinnamon in Test
exit 0
fi
#Restart the service
WALLETPATH_CFG="${HOME}/.local/share/kwalletd"
systemd-run --user --unit=kwalletd6-logon \
--property=RemainAfterExit=yes \
--property=SuccessExitStatus=1 \
--property=Before=gocryptfs-home.service \
--property="ExecStop=/usr/bin/sudo /usr/bin/umount -l ${WALLETPATH_CFG}" \
kwalletd6 >${TEMPDIR}/kwalletd6.log 2>&1 &
sleep 1
#Check if kwalletd is enabled now
for i in $(seq 1 4); do
QB_RESULT=$( $(dirname $0)/qbus_wallet_exec.sh isEnabled )
if [[ "$QB_RESULT" == "true" ]]; then
break
fi
sleep 2
done
if [[ "$QB_RESULT" != "true" ]]; then
echo "Error checking if kWallet service is activated. Please Check yourself what is wrong. Return of Check was:"
echo "$QB_RESULT"
exit 0
fi
#It should be possible to open the wallet without having to enter the password now.
echo "Checking if Wallet can be opened by the user. The Program should not ask for a password, maybe for confirmation to access the wallet which is ok."
echo "Please check to NOT have any Password asked now - if so, open kwalletmanager and change the password for wallet ${WALLETNAME} to nothing (by entering nothing when asked for new password)!"
QB_RESULT=$( $(dirname $0)/qbus_wallet_exec.sh open ${WALLETNAME} 0 $WALLETAPPID )
if [[ $? -ne 0 ]]; then
echo "Some Error opening Wallet ${WALLETNAME}. Please check."
exit 1
fi
echo "Sucessfully opened Wallet ${WALLETNAME} with ID ${QB_RESULT}. All is fine."
exit 0