Je suive ce tutoriel , et je veux connaître la version équivalente Centos-Version de cette étape spécifique à Ubuntu:
You may receive a few warnings regarding fonts and such, but it’ll still work despite these. If you want the framebuffer to start automatically on system startup you can do:
Sudo update-rc.d xvfb defaults 10
Quelle est la bonne façon de démarrer XVFB au démarrage sur Centos?
J'utilise le script Init suivant pour ajouter et démarrer XVFB sur le démarrage simplement blat que dans /etc/init.d/ et exécuter chkconfig xvfb sur
#!/bin/bash
#chkconfig: 345 95 50
#description: Starts xvfb on display 99
if [ -z "$1" ]; then
echo "`basename $0` {start|stop}"
exit
fi
case "$1" in
start)
/usr/bin/Xvfb :99 -screen 0 1280x1024x24 &
;;
stop)
killall Xvfb
;;
esac
Cela fait presque quatre ans que ces questions et réponses, et le monde a changé alors qu'ils ne l'ont pas. Depuis la version 7, Centos a utilisé SystemD. Ubuntu est mentionné dans la question et dans les commentaires. Depuis la version 15, Ubuntu a également utilisé SystemD.
Bien que l'on puisse utiliser le système 5 rc
scripts sous SystemD, les scripts des réponses ici sont hautement sous-optimal, pour le moins. On utilise allègrement killall
, dont les problèmes de gestion de Dæmon sont bien connus; Et l'autre est un gâchis de fichiers de verrouillage et de logique de fichier PID rickty Aucun est réellement nécessaire sous un gestionnaire de services, car les gestionnaires de services eux-mêmes Gardez une trace des processus Dæmon.
Comme je l'ai dit ailleurs, si vous commencez à apprendre ces affaires et que vous êtes sur Centos Linux version 7 ou ultérieure ou Ubuntu Linux version 15 ou ultérieure, ne commencez pas avec le système 5 rc
scripts en premier lieu. . Commencez par les fichiers de l'unité SystemD.
Simple xvfb.service
Les fichiers de l'unité SystemD pour XVFB peuvent être trouvés à https://www.centos.org/forums/viewtopic.php?f=48&t=49080#P20836 et à https://askubuntu.com/a/621256/43344 . Cependant, comme je l'ai mentionné à ce dernier, vous pouvez également adopter une approche modélisée:
[Unité] Description = Server de tampon de cadre virtuel X pour afficher% I Après = Network.Target [. ____] [ .] Exécutant =/usr/bin/xvfb% i -rscreen 0 1280x1024x24 [.____] [installer] [
En tant que fichier unitaire non emballé à l'échelle locale, non système non emballé pour les services du système (par opposition aux utilisateurs), cela entre en /etc/systemd/system/[email protected]
bien sûr.
On instatit le modèle dans un service nommé réel, avec le numéro d'affichage souhaité. Pour afficher :99
, donc, il y a une instance de service réelle nommée xvfb@:99.service
.
systemctl enable xvfb@:99.service
.systemctl disable xvfb@:99.service
.systemctl start xvfb@:99.service
.systemctl stop xvfb@:99.service
.systemctl status xvfb@:99.service
.systemctl
. Pages manuelles SystemD. libéesktop.org.Voici un bon script Init pour accomplir ceci:
http://onemoretech.wordpress.com/2009/05/27/an-xvfb-init-script/
Le script est:
#!/bin/bash
#
# /etc/rc.d/init.d/xvfbd
#
# chkconfig: 345 95 28
# description: Starts/Stops X Virtual Framebuffer server
# processname: Xvfb
#
. /etc/init.d/functions
[ "${NETWORKING}" = "no" ] && exit 0
PROG="/usr/X11R6/bin/Xvfb"
PROG_OPTIONS=":5 -screen 0 640x480x24"
PROG_OUTPUT="/tmp/Xvfb.out"
case "$1" in
start)
echo -n "Starting : X Virtual Frame Buffer "
$PROG $PROG_OPTIONS>>$PROG_OUTPUT 2>&1 &
disown -ar
/bin/usleep 500000
status Xvfb & >/dev/null && echo_success || echo_failure
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
/bin/touch /var/lock/subsys/Xvfb
/sbin/pidof -o %PPID -x Xvfb > /var/run/Xvfb.pid
fi
echo
;;
stop)
echo -n "Shutting down : X Virtual Frame Buffer"
killproc $PROG
RETVAL=$?
[ $RETVAL -eq 0 ] && /bin/rm -f /var/lock/subsys/Xvfb
/var/run/Xvfb.pid
echo
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
status)
status Xvfb
RETVAL=$?
;;
*)
echo $"Usage: $0 (start|stop|restart|reload|status)"
exit 1
esac
exit $RETVAL
Enregistrez le script sous XVFBD et copiez le script sur /etc/init.d
, puis exécutez la commande suivante:
Sudo chkconfig --add xvfbd
Le moyen le plus simple est d'ajouter la ligne suivante dans /etc/rc.local
Fichier (Créez-en un si ce n'est pas là):
Xvfb :0 -screen 0 1024x768x16 &
pour lancer x Cadre virtuel sur le démarrage.