detach long-running background processes from autostart service cgroup
KDE Plasma runs each autostart .desktop entry as a systemd user unit. systemd tracks service liveness by cgroup membership, not just the main PID. Any process forked inside the service — even via setsid or & — stays in the service's cgroup and keeps app-logon_script.sh@autostart in active (running) state indefinitely after logon_script.sh exits. mount_ecrypt_home.sh: wrap the gocryptfs mount call with systemd-run --user --scope --unit=gocryptfs-home The FUSE daemon that gocryptfs forks now lives in its own transient scope cgroup. Exit-code propagation is unchanged because systemd-run --scope returns the main process's exit code. 0050_nextcloud_desktopclient/user_run.sh: replace /usr/bin/setsid ... & with systemd-run --user --scope --unit=nextcloud-client ... & setsid creates a new session but does not move the process out of the cgroup; systemd-run --scope does. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -151,7 +151,7 @@ done
|
|||||||
#fi
|
#fi
|
||||||
# Now start Nextcloud
|
# Now start Nextcloud
|
||||||
echo "Starting Nextcloud Client in Background"
|
echo "Starting Nextcloud Client in Background"
|
||||||
/usr/bin/setsid ${BASECMD} >${TEMPDIR}/nc_desktop_client.log 2>&1 &
|
systemd-run --user --scope --unit=nextcloud-client ${BASECMD} >${TEMPDIR}/nc_desktop_client.log 2>&1 &
|
||||||
sleep 2
|
sleep 2
|
||||||
echo "Done Setup of Nextcloud."
|
echo "Done Setup of Nextcloud."
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ if [ ! -d "${DECRYPTEDDATADIR}" ] || [ ! -f "${HOME}/.config/gocryptfs/gocryptfs
|
|||||||
mkdir -p ${ENCRYPTEDDATADIR} ${DECRYPTEDDATADIR} ${HOME}/.config/gocryptfs
|
mkdir -p ${ENCRYPTEDDATADIR} ${DECRYPTEDDATADIR} ${HOME}/.config/gocryptfs
|
||||||
gocryptfs -init -allow_other -passfile /var/tmp/IPAVAULTKEY.txt -config ${HOME}/.config/gocryptfs/gocryptfs.conf ${ENCRYPTEDDATADIR} >/dev/null
|
gocryptfs -init -allow_other -passfile /var/tmp/IPAVAULTKEY.txt -config ${HOME}/.config/gocryptfs/gocryptfs.conf ${ENCRYPTEDDATADIR} >/dev/null
|
||||||
fi
|
fi
|
||||||
|
systemd-run --user --scope --unit=gocryptfs-home \
|
||||||
gocryptfs -noprealloc -allow_other -passfile /var/tmp/IPAVAULTKEY.txt -config ${HOME}/.config/gocryptfs/gocryptfs.conf ${ENCRYPTEDDATADIR} ${DECRYPTEDDATADIR} >/dev/null
|
gocryptfs -noprealloc -allow_other -passfile /var/tmp/IPAVAULTKEY.txt -config ${HOME}/.config/gocryptfs/gocryptfs.conf ${ENCRYPTEDDATADIR} ${DECRYPTEDDATADIR} >/dev/null
|
||||||
RETVAL=$?
|
RETVAL=$?
|
||||||
rm /var/tmp/IPAVAULTKEY.txt
|
rm /var/tmp/IPAVAULTKEY.txt
|
||||||
|
|||||||
Reference in New Issue
Block a user