Heim >Backend-Entwicklung >Golang >So stellen Sie Golang-Anwendungen mit systemd bereit und verteidigen sie

So stellen Sie Golang-Anwendungen mit systemd bereit und verteidigen sie

PHPz
PHPzOriginal
2023-04-05 09:09:501418Durchsuche

Im Zeitalter des Cloud Computing ermöglicht die schnelle Bereitstellung Entwicklern, Produkte schnell bereitzustellen und schnell auf Benutzeranforderungen zu reagieren. Golang hat sich in den letzten Jahren zu einer unverzichtbaren Programmiersprache im Bereich Cloud Computing entwickelt. Es kombiniert schnelle Kompilierung und effiziente Parallelitätsleistung. Was aber, wenn die Anwendung abstürzt? Um die Anwendung am Laufen zu halten, müssen wir einen Daemon verwenden, um die Anwendung zu überwachen und neu zu starten. In diesem Artikel wird erläutert, wie Sie mit systemd Golang-Anwendungen bereitstellen und verteidigen.

1. Installation und Konfiguration systemd

systemd ist heute eines der beliebtesten Initialisierungs- und Daemon-Management-Systeme. Es ist dafür verantwortlich, Systemdienste und Daemons zu starten, ihren Status zu überwachen und sie bei Bedarf neu zu starten. Vor der Verwendung von systemd muss es installiert werden.

Installieren Sie systemd mit dem folgenden Befehl:

$ sudo apt-get update
$ sudo apt-get install -y systemd

2. Erstellen Sie eine Dienstdatei

Bevor Sie den Daemon erstellen, müssen wir eine systemd-Dienstdatei erstellen. Eine Dienstdatei ist eine Textdatei, die Informationen zur Beschreibung eines Dienstes enthält. Der Speicherort der Dienstdatei befindet sich im Verzeichnis /etc/systemd/system/. Beispielsweise erstellen wir eine Servicedatei mit dem Namen golang-demo.service: /etc/systemd/system/ 目录下。例如,我们创建一个名为 golang-demo.service 的服务文件:

$ sudo touch /etc/systemd/system/golang-demo.service

编辑 golang-demo.service 文件:

$ sudo nano /etc/systemd/system/golang-demo.service

在文件中添加以下内容:

[Unit]
Description=My golang app
After=network.target

[Service]
Type=simple
User=ubuntu
Group=ubuntu
ExecStart=/usr/local/bin/golang-demo

[Install]
WantedBy=multi-user.target

其中,

  • [Unit] 部分包含服务名称和描述,以及该服务应该在何时启动(在 network.target 后)。
  • [Service] 部分描述了启动服务的详细信息,包括使用的用户,组,以及启动脚本文件的位置。
  • [Install] 部分规定了 systemd 应该在哪个目标身上启动该服务。

三、创建 golang 应用程序

接下来,我们需要创建一个 golang 应用程序,名为 golang-demo。在 terminal 中,使用以下 git 命令克隆一个简单的 go 应用程序:

$ git clone https://github.com/shalar/golang-demo.git

进入项目目录,并构建和编译应用程序:

$ cd golang-demo
$ go build

我们需要将生成的二进制文件 golang-demo 移动到 /usr/local/bin 目录中。

$ sudo mv golang-demo /usr/local/bin/

四、启动服务并进行测试

现在,我们已准备好启动服务并测试它了。使用命令启动服务:

$ sudo systemctl start golang-demo.service

查看服务的状态:

$ sudo systemctl status golang-demo.service

看到 active (running),表示服务正在运行,可以通过浏览器访问 http://localhost:8080,应该可以看到输出。

五、开机自启动

如前所述,在 [Install]

$ sudo systemctl enable golang-demo.service
Bearbeiten Sie die Datei golang-demo.service:

rrreee

Fügen Sie den folgenden Inhalt hinzu Datei:

rrreee

wobei der Teil

  • [Unit] den Dienstnamen und die Beschreibung sowie den Zeitpunkt enthält, an dem der Dienst gestartet werden soll (in network.target Code> zurück).
  • Der Abschnitt [Dienst] beschreibt die Details zum Starten des Dienstes, einschließlich des Benutzers, der verwendeten Gruppe und des Speicherorts der Startskriptdatei.
  • Der Abschnitt [Install] gibt das Ziel an, auf dem systemd den Dienst starten soll.
3. Erstellen Sie eine Golang-Anwendung🎜🎜Als nächstes müssen wir eine Golang-Anwendung mit dem Namen golang-demo erstellen. Verwenden Sie im Terminal den folgenden Git-Befehl, um eine einfache Go-Anwendung zu klonen: 🎜rrreee🎜Gehen Sie in das Projektverzeichnis und erstellen und kompilieren Sie die Anwendung: 🎜rrreee🎜Wir müssen die generierte Binärdatei golang-demo Wechseln Sie in das Verzeichnis <code>/usr/local/bin. 🎜rrreee🎜4. Starten Sie den Dienst und testen Sie ihn🎜🎜Jetzt sind wir bereit, den Dienst zu starten und zu testen. Verwenden Sie den Befehl, um den Dienst zu starten: 🎜rrreee🎜 Überprüfen Sie den Status des Dienstes: 🎜rrreee🎜 Wenn aktiv (wird ausgeführt) angezeigt wird, bedeutet dies, dass der Dienst ausgeführt wird. Sie können auf http:/ zugreifen. /localhost:8080 über den Browser. Die Ausgabe sollte in Ordnung sein. 🎜🎜5. Automatischer Start beim Booten🎜🎜Wie bereits erwähnt, geben wir im Abschnitt [Install] an, auf welchem ​​Zielsystem der Dienst gestartet werden soll. Jetzt können wir den folgenden Befehl verwenden, um beim Booten automatisch zu starten: 🎜rrreee🎜Jetzt startet das System den Dienst automatisch bei jedem Start. 🎜🎜 6. Fazit 🎜🎜In diesem Artikel wird erläutert, wie Sie mit systemd Golang-Anwendungen bereitstellen und schützen. systemd ist ein beliebter Daemon-Manager, der das Starten, Stoppen, Neustarten und andere Vorgänge von Diensten einfach verwalten kann und unsere Anwendungen immer online hält. 🎜

Das obige ist der detaillierte Inhalt vonSo stellen Sie Golang-Anwendungen mit systemd bereit und verteidigen sie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn