Vous pouvez utiliser Xvfb , qui est un serveur X avec un tampon d' images virtuel, c'est-à-dire un serveur X qui s'affiche uniquement en mémoire et ne se connecte à aucun matériel. Vous n'avez pas besoin d'exécuter un client dont vous ne voulez pas sur ce serveur, et en particulier aucun environnement de bureau ou gestionnaire de fenêtres.
Xvfb :1 -screen 0 1x1x8 &
Après ça:
DISPLAY=:1 dbus-launch
DISPLAY=:1 pulseaudio --start
Vous devez attendre un peu après le démarrage Xvfb
pour que l'affichage soit disponible. Vous pouvez utiliser xinit
pour démarrer un serveur X, puis démarrer les clients lorsqu'il est prêt. Mettez les commandes que vous souhaitez exécuter dans un script (notez que lorsque le script se ferme, le serveur X se ferme):
#!/bin/sh
dbus-launch
pulseaudio --start
sleep 99999999
Démarrez le serveur X virtuel avec
xinit /path/to/client.script -- /usr/bin/Xvfb :1 -screen 0 1x1x8
Si vous souhaitez l'exécuter au démarrage, vous pouvez le démarrer à partir de cron. Exécutez crontab -e
(en tant qu'utilisateur, pas en tant que root) et ajoutez la ligne
@reboot xinit /path/to/client.script -- Xvfb :1 -screen 0 1x1x8
Si vous voulez tuer cette session, arrêtez le xinit
processus.