Ale z tego co wiem, gdm i tak się uruchamia tyle, że po prostu loguje automatycznie i nie pokazuje tego na ekranie.
To prawda. Pomija proces logowania i uruchamia środowisko graficzne.
Gdybyś miał kilka zainstalowanych środowisk graficznych i włączone logowanie się,
to właśnie z niego możesz wybrać środowisko.
To nie może odbywać się losowo ponieważ często jedna usługa jest zależna od innej. Np. właśnie załadowanie pulpitu jest zależne od gdm, którzy przecież musi załadować się pierwszy.
Napisałem " W systemd większość usług jest uruchamiana losowo. "
Są pewne wyjątki w systemd.
Natomiast środowisko graficzne nie jest uruchamiane przez systemd, a przez display menadżera np. gdm, lightdm , itd.
Także jeśli uparcie chcesz sprawdzić czy środowisko się uruchomiło,
to chyba najlepiej spytać się developerów środowiska którego używasz.
Przykładowo mógłbym sprawdzać czy powstał już proces środowiska graficznego.
U mnie to jest " mate-session " ,
ten fragment drzewa po uruchomieniu komendy pstree ( wyświetla drzewo procesów )
├─lightdm─┬─Xorg───{Xorg}
│ ├─lightdm─┬─mate-session─┬─caja───4*[{caja}]
Tylko że sprawdzanie co sekundę czy proces już istnieje, to zjada zasoby komputera.
Trochę jak odliczanie sleep.
Powinno się używać inotifywait, ale na razie to działa tylko na plikach i folderach.
Jeśli założymy, że plik $HOME/.xsession-errors powstaje po uruchomieniu się środowiska,
to można by go obserwować czy się zmienił , np.
#!/bin/bash
inotifywait -q -e modify,delete_self,move_self /home/nazwa_uzytkownika/.xsession-errors &>/dev/null
aplay /home/groovy/login.wav
Ale czy on rzeczywiście powstaje po, tego nie wiem. Możesz sprawdzić.
Druga sprawa to tego dźwięku, ale też byś musiał sprawdzić.
U mnie odnośnie tego dźwięku pierw powinna wystartować alsa, a później pulseaudio ( ponieważ pulseaudio jest nakładką na alsę )
W systemd znalazłem tylko
$ systemd-analyze blame | grep alsa
59ms alsa-restore.service
Nie jestem pewien czy to uruchamia alsę.
Natomiast pulse audio startuje wraz ze środowiskiem graficznym,
czyli w moim przypadku środowisko uruchamia skrypt z /etc/xdg/autostart/pulseaudio.desktop
( Podałem wyżej link to XDG Autostart )
Które pierwsze się uruchomi?
Środowisko graficzne, czy Pulseaudio?
W sumie to nie istotne, zawsze możesz sprawdzić oba procesy.
Czy dzwięk również zadziała, gdy Alsa się uruchomiła, ale Pulse Audio jeszcze nie ?
Pozostawię Tobie to do sprawdzenia.