E ora, la risposta di systemd.
Sono passati quasi quattro anni da queste domande e risposte, e il mondo è cambiato mentre non lo sono state. Dalla versione 7, CentOS utilizza systemd. Ubuntu è menzionato nella domanda e nei commenti. Dalla versione 15, Ubuntu ha usato anche systemd.
Sebbene uno possa usare gli rc
script System 5 in systemd, gli script nelle risposte qui sono altamente non ottimali, per non dire altro. Si usa killall
beato, i cui problemi per la gestione del demone sono ben noti; e l'altro è un casino di file di blocco traballanti e logica di file PID, nessuno dei quali è effettivamente necessario sotto un gestore di servizi, poiché i gestori di servizi stessi tengono traccia dei processi di demonio.
Come ho già detto altrove, se stai iniziando a imparare queste cose e sei su CentOS Linux versione 7 o successive o Ubuntu Linux versione 15 o successive, non iniziare con gli rc
script System 5 in primo luogo. Inizia con i file di unità di sistema.
un modello per più servizi Xvfb
xvfb.service
File di unità di sistema semplici per xvfb sono disponibili su https://www.centos.org/forums/viewtopic.php?f=48&t=49080#p208363 e su /ubuntu//a/621256/43344 . Tuttavia, come ho accennato in quest'ultima, si può anche adottare un approccio basato su modelli:
[Unità]
Descrizione = server X frame buffer virtuale per display% I
Dopo = network.target
[Servizio]
ExecStart = / usr / bin / Xvfb% I -screen 0 1280x1024x24
[Installare]
WantedBy = multi-user.target
In quanto file unitario, non di sistema e non impacchettato, scritto localmente per i servizi a livello di sistema (anziché per utente), ciò vale /etc/systemd/system/xvfb@.service
naturalmente.
controllo dei servizi
Si crea un'istanza del modello, in un vero servizio denominato, con il numero visualizzato desiderato. Per la visualizzazione :99
, pertanto, esiste un'istanza di servizio effettiva denominata xvfb@:99.service
.
- Impostare il servizio per l'avvio automatico sul bootstrap con
systemctl enable xvfb@:99.service
.
- Disattivare l'avvio automatico del servizio con
systemctl disable xvfb@:99.service
.
- Avviare il servizio manualmente con
systemctl start xvfb@:99.service
.
- Interrompere il servizio manualmente con
systemctl stop xvfb@:99.service
.
- Controllare lo stato del servizio corrente in dettaglio con
systemctl status xvfb@:99.service
.
Ulteriori letture