Et maintenant, la réponse systemd.
Cela fait près de quatre ans depuis ces questions et réponses, et le monde a changé alors qu'ils ne l'ont pas fait. Depuis la version 7, CentOS utilise systemd. Ubuntu est mentionné dans la question et dans les commentaires. Depuis la version 15, Ubuntu utilise également systemd.
Bien que l'on puisse utiliser des rc
scripts System 5 sous systemd, les scripts dans les réponses ici sont pour le moins très sous-optimaux. On utilise allègrement killall
, dont les problèmes de gestion des démons sont bien connus; et l'autre est un désordre de fichier de verrouillage branlant et de logique de fichier PID dont aucun n'est réellement nécessaire sous un gestionnaire de services, car les gestionnaires de services eux-mêmes gardent une trace des processus dæmon.
Comme je l'ai dit ailleurs, si vous commencez à apprendre ce genre de choses et que vous utilisez CentOS Linux version 7 ou ultérieure ou Ubuntu Linux version 15 ou ultérieure, ne commencez pas par les rc
scripts System 5 en premier lieu. Commencez par les fichiers d'unité systemd.
un modèle pour plusieurs services Xvfb
Les xvfb.service
fichiers d'unité systemd simples pour xvfb peuvent être trouvés sur https://www.centos.org/forums/viewtopic.php?f=48&t=49080#p208363 et sur /ubuntu//a/621256/43344 . Cependant, comme je l'ai mentionné lors de cette dernière, on peut également adopter une approche modélisée:
[Unité]
Description = serveur X de tampon de trame virtuelle pour l'affichage% I
Après = network.target
[Un service]
ExecStart = / usr / bin / Xvfb% I -screen 0 1280x1024x24
[Installer]
WantedBy = multi-user.target
En tant que fichier d'unité écrit localement, non système et non empaqueté pour les services à l'échelle du système (par opposition aux services par utilisateur), cela va /etc/systemd/system/xvfb@.service
bien sûr.
contrôler les services
On instancie le modèle, dans un service nommé réel, avec le numéro d'affichage souhaité. Pour l'affichage :99
, il existe donc une instance de service réelle nommée xvfb@:99.service
.
- Définissez le service pour qu'il démarre automatiquement au démarrage avec
systemctl enable xvfb@:99.service
.
- Désactivez le démarrage automatique du service avec
systemctl disable xvfb@:99.service
.
- Démarrez le service manuellement avec
systemctl start xvfb@:99.service
.
- Arrêtez le service manuellement avec
systemctl stop xvfb@:99.service
.
- Inspectez en détail l'état actuel du service avec
systemctl status xvfb@:99.service
.
Lectures complémentaires