Piszę projekt programistyczny. Dodałem uruchamianie aplikacji GUI według xdg-autostart do auto startu. Problemem jest to, że kiedy zamykam sesję i zaloguję się ponownie, wychodzi na to, że aplikacja istnieje nadal. Sprawdziłem, i się okazało, że jest uruchomiona w sesji manager. Środowiskiem graficznym jest Plasma6. Jak ją przenieść do zwykłej sesji (może trzeba użyć systemd?) lub czy przypadkiem niepoprawnie ją kończę?
Oki. Program jednak nie pozostaje uruchomiony w sesji manager. Problemem jest to, że jest uruchamiany w sesji manager, a ta sesja się nie kończy,
Domyślne ustawienie Plasma 6 to kontynuacja sesji jaką miałeś przed np. wyłączeniem PC.
Jak chcesz za każdym razem uruchamiać pustą lub zapisaną to są stosowne ustawienia w KDE.
https://docs.kde.org/stable5/en/plasma-desktop/kcontrol/kcmsmserver/index.html
Ja piszę daemona z dodatkową apką do GUI. Apka do GUI ma się uruchamiać za każdym włączeniem środowiska. Problemem jest to, że login1 zwraca sesję typu manager, gdy proszę o podanie sesji, do której należy moje GUI. Ja zaimplementowałem obsługę wyłączenia sesji, dzięki sygnałom SessionRemove i UserRemove. Problem w tym, że moje GUI jest w sesji manager, a powinno być w normalnej. Cały problem jest spowodowany m.in tym, że sesja manager się nie kończy.
Ok.
Doszedłem do wniosku, że na Linuksie może istnieć maksymalnie jedna sesja graficzna dla danego użytkownika, więc przerobię swojego daemona, zamiast starać się zmienić sposób startu GUI. Temat do zamknięcia, chyba że ktoś zna odpowiedź na postawione pytanie.
Jestem prawie pewien że odpowiedź zna Claude Code - AI coding agent for terminal & IDE | Claude co więcej jak napiszesz jasno prompt’a to sam zaprogramuje co trzeba. Polecam wersję konsolową. To już nie jest zabawka, znajomi poważni programiści są w szoku co to potrafi.
Rozwiązałem. Użytkownik może mieć tylko jedną sesję graficzną. Dodałem obsługę sygnału SessionNew czy SessionCreated. W tym momencie, sprawdzamy czy sesja jest graficzna, pobieramy UID i robimy resztę.