E agora, o sistema responde.
Já se passaram quase quatro anos desde essas perguntas e respostas, e o mundo mudou enquanto elas não mudaram. Desde a versão 7, o CentOS usa o systemd. O Ubuntu é mencionado na pergunta e nos comentários. Desde a versão 15, o Ubuntu também usou o systemd.
Embora se possa usar os rc
scripts do Sistema 5 no systemd, os scripts nas respostas aqui são altamente abaixo do ideal, para dizer o mínimo. Utiliza-se alegremente killall
, cujos problemas para o gerenciamento de daemon são bem conhecidos; e a outra é uma bagunça de arquivos de bloqueio precários e lógica de arquivos PID, nenhum dos quais é realmente necessário em um gerenciador de serviços, uma vez que os próprios gerenciadores de serviços mantêm o controle dos processos comuns.
Como já disse em outro lugar, se você está começando a aprender essas coisas e está no CentOS Linux versão 7 ou posterior ou Ubuntu Linux versão 15 ou posterior, não comece com os rc
scripts do Sistema 5 em primeiro lugar. Comece com os arquivos da unidade systemd.
um modelo para vários serviços Xvfb
xvfb.service
Arquivos simples de unidade systemd para xvfb podem ser encontrados em https://www.centos.org/forums/viewtopic.php?f=48&t=49080#p208363 e em /ubuntu//a/621256/43344 . No entanto, como mencionei no último, também é possível adotar uma abordagem de modelos:
[Unidade]
Descrição = servidor X do buffer de quadro virtual para exibição% I
Depois = network.target
[Serviço]
ExecStart = / usr / bin / Xvfb% I - tela 0 1280x1024x24
[Instalar]
WantedBy = multi-user.target
Como um arquivo de unidade gravado localmente, sem sistema e não empacotado para serviços em todo o sistema (em oposição a por usuário), isso é /etc/systemd/system/xvfb@.service
óbvio.
controlando os serviços
Um instancia o modelo, em um serviço nomeado real, com o número de exibição desejado. Para exibição :99
, portanto, há uma instância de serviço real nomeada xvfb@:99.service
.
- Defina o serviço para iniciar automaticamente no bootstrap com
systemctl enable xvfb@:99.service
.
- Desative o início automático do serviço com
systemctl disable xvfb@:99.service
.
- Inicie o serviço manualmente com
systemctl start xvfb@:99.service
.
- Pare o serviço manualmente com
systemctl stop xvfb@:99.service
.
- Inspecione o status atual do serviço em detalhes com
systemctl status xvfb@:99.service
.
Leitura adicional