È possibile utilizzare Xvfb , che è un server X con un framebuffer virtuale, ovvero un server X che viene visualizzato solo in memoria e non si collega a nessun hardware. Non è necessario eseguire alcun client non desiderato su quel server, in particolare nessun ambiente desktop o gestore di finestre.
Xvfb :1 -screen 0 1x1x8 &
Dopodichè:
DISPLAY=:1 dbus-launch
DISPLAY=:1 pulseaudio --start
È necessario attendere un po 'dopo aver avviato Xvfb
la visualizzazione del display. È possibile utilizzare xinit
per avviare un server X e quindi avviare i client quando è pronto. Inserisci i comandi che vuoi eseguire in uno script (nota che quando lo script esce, il server X esce):
#!/bin/sh
dbus-launch
pulseaudio --start
sleep 99999999
Avviare il server X virtuale con
xinit /path/to/client.script -- /usr/bin/Xvfb :1 -screen 0 1x1x8
Se vuoi eseguirlo all'avvio, puoi avviarlo da cron. Esegui crontab -e
(come utente, non come root) e aggiungi la riga
@reboot xinit /path/to/client.script -- Xvfb :1 -screen 0 1x1x8
Se vuoi uccidere questa sessione, uccidi il xinit
processo.