1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Installieren und konfigurieren Sie systemd auf dem Managed Cloud Server
Dieser Leitfaden erläutert, wie Sie systemd auf einem Managed Cloud Server installieren und konfigurieren können, und stellt die wichtigsten verwendbaren Befehle vor.
Voraussetzungen
- Befolgen Sie die systemd-Installationsanleitung für den Cloud-Server.
- Konsultieren Sie die offizielle Dokumentation, um alle von systemd gebotenen Möglichkeiten zu erkunden.
- Die "Unit"-Dateien sollten in folgendes Verzeichnis verschoben werden:
~/.config/systemd/user/ ( /home/clients/absolute-path-id/.config/systemd/user )
(ersetzen Sie absolute-path-id, wie im Manager angezeigt), und die Berechtigungen sollten auf 0644 gesetzt werden. - Der Parameter
--user
sollte in jedem Befehl enthalten sein.
Hauptbefehle
Hier ist eine nicht erschöpfende Liste von Befehlen, die mit systemd verwendet werden können.
Zwingen Sie systemd, die Unit-Dateien erneut einzulesen und die Änderungen zu berücksichtigen:
systemctl --user daemon-reload
Aktivieren eines Dienstes:
systemctl --user enable --now SERVICENAME.service
Überprüfen des Status eines Dienstes:
systemctl --user status SERVICENAME.service
Konfiguration von Node als Dienst mit systemd
Sie müssen eine "Unit"-Datei mit der Erweiterung ".service" erstellen, die im Verzeichnis gespeichert werden sollte:
~/.config/systemd/user/
Sie können das folgende Beispiel verwenden, indem Sie Werte, die mit "{}" beginnen, ersetzen:
[Unit]
Description={Service Name} # Geben Sie hier einen Dienstnamen an. Dies ist obligatorisch, beeinflusst jedoch nicht die Funktionalität
[Service]
Restart=always
Environment=NODE_VERSION={gewünschte Version} # Geben Sie hier die gewünschte Node-Version an. Stellen Sie sicher, dass sie vorher mit "nvm install {gewünschte Version}" installiert ist
WorkingDirectory=%h/{Node-Projektverzeichnis} # %h entspricht dem Root-Verzeichnis des Hostings
ExecStart=/bin/bash -c "exec $HOME/.nvm/nvm-exec {Befehl zum Starten des Node-Skripts}" # Dieser Befehl hängt vom Projekt ab. Beispiele sind "npm run start", "npm run serve" oder "node server.js"
[Install]
WantedBy=default.target
Zusätzliche Aktionen mit einer Unit-Datei
systemctl --user daemon-reload
Starten Sie den Dienst (wenn er bereits aktiv ist, passiert nichts):
systemctl --user start [Unit-Name]
Stoppen Sie den Dienst (wenn er nicht aktiv ist, passiert nichts):
systemctl --user stop [Unit-Name]
Starten Sie den Dienst neu (wenn er nicht läuft, wird er gestartet):
systemctl --user restart [Unit-Name]
Erhalten Sie Informationen über den Dienst, einschließlich:
- "Active", das angibt, ob der Dienst läuft und seit wann
- "CGroup" zeigt die Prozessgruppe, die vom Dienst verwaltet wird, und ermöglicht es Ihnen, aktive Prozesse mit ihren Argumenten und IDs zu sehen
Unter "CGroup" befinden sich etwaige Protokolle (Standardausgabe und Fehler des Prozesses):
systemctl --user status [Unit-Name]
Aktivieren Sie den automatischen Start des Dienstes beim Start des Servers; NB: Dies startet den Dienst nicht:
systemctl --user enable [Unit-Name]
Deaktivieren Sie den automatischen Start des Dienstes beim Start des Servers; NB: Dies stoppt den Dienst nicht:
systemctl --user disable [Unit-Name]
Konfiguration mit Benutzereingaben:
[Unit]
Description="Service Name"
[Service]
Restart=always
Environment=NODE_VERSION=16.17
WorkingDirectory=%h/sites/"Verzeichnisname-der-Website"/
ExecStart=/bin/bash -c "exec $HOME/.nvm/nvm-exec npm run start"
[Install]
WantedBy=default.target