Systemd¶
Systemd is het standaard systeem en service manager op de meeste Linux distributies. Het wordt meestal standaard geïnstalleerd, zodat geen installatie nodig is op ondersteunde Swift-distributies.
Configureren¶
Elke Vapor app op uw server zou zijn eigen service bestand moeten hebben. Voor een voorbeeld Hello
project, zou het configuratie bestand te vinden zijn in /etc/systemd/system/hello.service
. Dit bestand zou er als volgt uit moeten zien:
[Unit]
Description=Hello
Requires=network.target
After=network.target
[Service]
Type=simple
User=vapor
Group=vapor
Restart=always
RestartSec=3
WorkingDirectory=/home/vapor/hello
ExecStart=/home/vapor/hello/.build/release/App serve --env production
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=vapor-hello
[Install]
WantedBy=multi-user.target
Zoals gespecificeerd in ons configuratie bestand bevindt het Hello
project zich in de thuismap van de gebruiker vapor
. Zorg ervoor dat WorkingDirectory
wijst naar de root directory van uw project waar het Package.swift
bestand staat.
De --env production
vlag schakelt verbose logging uit.
Environment¶
Anders is het citeren van de waarden optioneel maar aanbevolen.
Je kunt variabelen op twee manieren exporteren via systemd. Ofwel door een omgevingsbestand aan te maken met alle variabelen erin ingesteld:
EnvironmentFile=/path/to/environment/file1
EnvironmentFile=/path/to/environment/file2
Of u kunt ze direct toevoegen aan het service bestand onder [service]
:
Environment="PORT=8123"
Environment="ANOTHERVALUE=/something/else"
Geëxporteerde variabelen kunnen in Vapor gebruikt worden met Environment.get
let port = Environment.get("PORT")
Start¶
U kunt nu uw app laden, inschakelen, starten, stoppen en herstarten door het volgende uit te voeren als root.
systemctl daemon-reload
systemctl enable hello
systemctl start hello
systemctl stop hello
systemctl restart hello