Teoricamente você está fazendo a coisa certa. Em teoria, estar no nível de execução N significa que todos os serviços associados ao número N estão sendo executados, e aqueles que não estão, não estão sendo executados.
Na prática, você não pode fazer essa transição sem informar ao sistema explicitamente para fazer a transição para você.
Você confundiu o startx com o que normalmente acontece no runlevel 5. Quando você insere o nível de execução 5, o sistema inicia um login do gerenciador de exibição (gdm, kdm, etc.). Este é um gerenciador de exibição simples que iniciará o X assim que você efetuar login (semelhante ao que você fez com o startx ... as diferenças são muito pequenas).
Se você iniciou o gdm como root no nível de execução 3, é concebível que alguma implementação de transição / gerenciamento de runlevel pare o gdm se você indicar que queria estar no runlevel 3. Eu wouldn ' Não conte com isso trabalhando assim na vida real. Primeiro, o sistema pode ignorá-lo porque ninguém disse que estava no nível de execução 5, embora o gdm esteja em execução. Segundo, o sistema pode não lidar com o processo que você iniciou da mesma maneira que lidaria com um processo que foi iniciado automaticamente.