Isso não é possível com apenas um único comando, pois os programas tendem a estar em vários locais (com base em quando eles precisam ser iniciados e se precisam ser iniciados por um sistema ou por um único usuário). 2 diretórios principais que mantêm serviços iniciados durante o tempo de inicialização ...
/etc/init/
/etc/init.d/
Mas esses diretórios incluem mais do que apenas os programas iniciados: alguns podem estar desativados devido a uma configuração. Alguns são scripts antigos e estão lá para compatibilidade com versões anteriores e não fazem nada desde que foram transformados em um serviço iniciante.
Depois, há também ...
/etc/xdg/autostart
~/.config/autostart
Estes últimos 2 têm arquivos .desktop, então o comando que eles usam está dentro do próprio arquivo.
Se você quiser todos eles em um arquivo de texto, você pode fazer isso como um liner, a partir da linha de comando:
ls -lR /etc/init/ > /tmp/test.txt &&
ls -lR /etc/init.d/ >> /tmp/test.txt &&
ls -lR /etc/xdg/autostart >> /tmp/test.txt &&
ls -lR ~/.config/autostart >> /tmp/test.txt
Isso lhe daria uma longa lista recursiva de todo o conteúdo de um arquivo chamado test.txt dentro de / tmp /. Será uma longa lista, mas também não afirmo que seja perfeita: é totalmente possível que existam mais programas iniciados dentro de um .bashrc
, por exemplo.