Você pode usar o Xvfb , que é um servidor X com um framebuffer 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 disso:
DISPLAY=:1 dbus-launch
DISPLAY=:1 pulseaudio --start
Você precisa aguardar um pouco depois de iniciar Xvfb
para que a exibição esteja disponível. Você pode usar xinit
para iniciar um servidor X e depois iniciar os clientes quando estiver pronto. Coloque os comandos que você deseja executar em um script (observe que quando o script sair, o servidor X será encerrado):
#!/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ê quiser executá-lo no momento da inicialização, você pode 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ê quiser matar esta sessão, mate o processo xinit
.