kwallet: remove ExecStop, stop old unit in user_run.sh instead
ExecStop on the user service caused an unmount race: it fired asynchronously after logout while the next login's install.sh had already remounted the wallet, then unmounted it again leaving kwalletd6 without its wallet directory. install.sh already handles umount/remount at login start, so no ExecStop is needed. On gocryptfs systems the wallet becomes inaccessible at logout naturally when ~/data is unmounted. user_run.sh now explicitly stops any leftover kwalletd6-logon unit from a previous session before creating a new one, avoiding the systemd-run unit-name-conflict failure. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -18,12 +18,11 @@ if [[ -z $(wmctrl -m | grep "KWin") ]]; then
|
||||
fi
|
||||
|
||||
#Restart the service
|
||||
WALLETPATH_CFG="${HOME}/.local/share/kwalletd"
|
||||
# Stop any leftover unit from a previous session before creating a new one
|
||||
systemctl --user stop kwalletd6-logon.service 2>/dev/null || true
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user