Y ahora, la respuesta del sistema.
Han pasado casi cuatro años desde estas preguntas y respuestas, y el mundo ha cambiado mientras que no lo han hecho. Desde la versión 7, CentOS ha usado systemd. Ubuntu se menciona en la pregunta y en los comentarios. Desde la versión 15, Ubuntu también ha usado systemd.
Aunque uno puede usar rc
scripts del Sistema 5 en systemd, los scripts en las respuestas aquí son muy subóptimos, por decir lo menos. Uno lo usa alegremente killall
, cuyos problemas para el manejo de demonios son bien conocidos; y el otro es un desorden de archivo de bloqueo desvencijado y lógica de archivo PID, ninguno de los cuales es realmente necesario bajo un administrador de servicios, ya que los mismos administradores de servicios realizan un seguimiento de los procesos de daemon.
Como he dicho en otra parte, si está comenzando a aprender estas cosas y está en CentOS Linux versión 7 o posterior o Ubuntu Linux versión 15 o posterior, no comience con los rc
scripts del Sistema 5 en primer lugar. Comience con los archivos de la unidad systemd.
una plantilla para múltiples servicios Xvfb
Se xvfb.service
pueden encontrar archivos de unidad systemd simples para xvfb en https://www.centos.org/forums/viewtopic.php?f=48&t=49080#p208363 y en /ubuntu//a/621256/43344 . Sin embargo, como mencioné en este último, también puede adoptar un enfoque de plantilla:
[Unidad]
Descripción = servidor X del búfer de trama virtual para la visualización% I
Después = network.target
[Servicio]
ExecStart = / usr / bin / Xvfb% I -screen 0 1280x1024x24
[Instalar en pc]
WantedBy = multi-user.target
Como un archivo de unidad escrito localmente, no empaquetado y no del sistema para servicios de todo el sistema (a diferencia de por usuario), esto entra, por /etc/systemd/system/xvfb@.service
supuesto.
controlar los servicios
Uno crea una instancia de la plantilla, en un servicio con nombre real, con el número de pantalla que se desea. Para la visualización :99
, por lo tanto, hay una instancia de servicio real llamada xvfb@:99.service
.
- Configure el servicio para que se inicie automáticamente en bootstrap con
systemctl enable xvfb@:99.service
.
- Desarme el inicio automático del servicio con
systemctl disable xvfb@:99.service
.
- Inicie el servicio manualmente con
systemctl start xvfb@:99.service
.
- Detenga el servicio manualmente con
systemctl stop xvfb@:99.service
.
- Inspeccione el estado actual del servicio en detalle con
systemctl status xvfb@:99.service
.
Otras lecturas