Você pode usar o Xvfb , que é um servidor X com um buffer de estrutura virtual, ou seja, um servidor X que é exibido apenas na memória e não se conecta a nenhum hardware. Você não precisa executar nenhum cliente que não queira nesse servidor e, em particular, nenhum ambiente de desktop ou gerenciador de janelas.
Xvfb :1 -screen 0 1x1x8 &
Depois disto:
DISPLAY=:1 dbus-launch
DISPLAY=:1 pulseaudio --start
Você precisa esperar um pouco depois de iniciar Xvfb
para que a exibição esteja disponível. Você pode usar xinit
para iniciar um servidor X e, em seguida, iniciar clientes quando estiver pronto. Coloque os comandos que você deseja executar em um script (observe que, quando o script sai, o servidor X sai):
#!/bin/sh
dbus-launch
pulseaudio --start
sleep 99999999
Inicie o servidor X virtual com
xinit /path/to/client.script -- /usr/bin/Xvfb :1 -screen 0 1x1x8
Se você deseja executá-lo no momento da inicialização, é possível iniciá-lo a partir do cron. Execute crontab -e
(como seu usuário, não como root) e adicione a linha
@reboot xinit /path/to/client.script -- Xvfb :1 -screen 0 1x1x8
Se você deseja matar esta sessão, mate o xinit
processo.