Heim  >  Artikel  >  Backend-Entwicklung  >  So stellen Sie ein Golang-Projekt auf einem Ubuntu-System bereit

So stellen Sie ein Golang-Projekt auf einem Ubuntu-System bereit

PHPz
PHPzOriginal
2023-04-27 09:10:201598Durchsuche

Als Entwickler ist die schnelle und stabile Bereitstellung und Ausführung von Code eine der wesentlichen Fähigkeiten beim Aufbau einer Projektentwicklungsumgebung. In diesem Artikel erfahren Sie, wie Sie Golang-Projekte auf Ubuntu-Systemen bereitstellen.

Bevor Sie beginnen, müssen Sie die folgenden Schritte ausführen:

  1. Installieren Sie die Golang-Umgebung
  2. Installieren Sie das Git-Tool

Als nächstes erklären wir es in den folgenden Schritten.

Schritt 1: Holen Sie sich den Code

Zuerst müssen wir den Projektcode besorgen. Geben Sie im Terminal den folgenden Befehl ein:

git clone https://github.com/username/repository.git

Wobei https://github.com/username/repository.git die Git-Adresse des Projekts ist, die auf der Projekthomepage zu finden ist. https://github.com/username/repository.git 是项目的 Git 地址,可以在项目主页中找到。

步骤二:编译代码

完成代码拉取后,我们需要使用 Golang 工具链进行编译。在项目目录下,输入以下命令:

go build main.go

其中,main.go 是项目的入口文件。执行该命令后,会在项目目录下生成一个可执行文件。

步骤三:运行代码

在完成编译后,我们可以直接运行该可执行文件。在终端中输入以下命令:

./main

执行该命令后,可执行文件即开始运行。

步骤四:配置后台运行

在实际部署中,我们需要将应用程序放在后台运行,以保证稳定性和持久性。以下是两种常用的方式:

使用 nohup 命令

nohup 可以使程序在后台运行,并将输出重定向到指定文件,从而避免因为用户退出终端而导致的程序强制退出。

在终端中输入以下命令:

nohup ./main > log.txt 2>&1 &

其中:

  • nohup 启动程序,并忽略 HUP 信号,使程序可以在后台运行;
  • ./main 是可执行文件的路径和文件名;
  • > log.txt 将程序输出的信息重定向到 log.txt 文件中;
  • 2>&1 将标准错误输出和标准输入输出合并,重定向到 log.txt 文件中;
  • & 将程序放入后台运行。

使用 systemd 服务

systemd 是一种常用的系统管理工具,可以管理系统的服务、进程等。我们可以将 Golang 项目封装成一个 systemd 服务,从而实现自动启动、自动重启等功能。

以下是 systemd 服务文件的一个示例:

[Unit]
Description=My Go Application

[Service]
Type=simple
Restart=always
User=root
ExecStart=/path/to/app/main

[Install]
WantedBy=multi-user.target

在该服务文件中,我们需要定义服务的描述、类型、重启机制等配置项。具体配置项的含义可以参考 systemd 官方文档。

在配置完成后,我们可以使用以下命令启动服务:

systemctl start my-go-app.service

需要注意的是,服务文件需要存放在 /etc/systemd/system 目录下,并以 .service

Schritt 2: Kompilieren Sie den Code

Nach Abschluss des Code-Pullings müssen wir zum Kompilieren die Golang-Toolkette verwenden. Geben Sie im Projektverzeichnis den folgenden Befehl ein: 🎜rrreee🎜 Darunter ist main.go die Eintragsdatei des Projekts. Nach Ausführung dieses Befehls wird eine ausführbare Datei im Projektverzeichnis generiert. 🎜🎜Schritt 3: Führen Sie den Code aus 🎜🎜Nach Abschluss der Kompilierung können wir die ausführbare Datei direkt ausführen. Geben Sie im Terminal den folgenden Befehl ein: 🎜rrreee🎜Nach Ausführung dieses Befehls wird die ausführbare Datei ausgeführt. 🎜🎜Schritt 4: Hintergrundausführung konfigurieren🎜🎜Bei der tatsächlichen Bereitstellung müssen wir die Anwendung im Hintergrund ausführen, um Stabilität und Haltbarkeit zu gewährleisten. Im Folgenden sind zwei häufig verwendete Methoden aufgeführt: 🎜

Verwenden Sie den Befehl nohup

🎜nohup kann das Programm im Hintergrund ausführen lassen und die Ausgabe in die angegebene Datei umleiten, wodurch das erzwungene Beenden des Programms aufgrund von vermieden wird Benutzer verlässt das Terminal. 🎜🎜Geben Sie den folgenden Befehl im Terminal ein: 🎜rrreee🎜Unter anderem: 🎜
    🎜nohup startet das Programm und ignoriert das HUP-Signal, damit das Programm im Hintergrund laufen kann; 🎜🎜./main ist der Pfad und Dateiname der ausführbaren Datei; 🎜🎜&gt leitet die vom Programm ausgegebenen Informationen an log.txt-Datei; 🎜 🎜2>&1 Führen Sie die Standardfehlerausgabe und die Standardeingabe und -ausgabe zusammen und leiten Sie sie in die Datei log.txt um 🎜🎜& Lassen Sie das Programm im Hintergrund laufen. 🎜

Systemd-Dienst verwenden

🎜systemd ist ein häufig verwendetes Systemverwaltungstool, das Systemdienste, Prozesse usw. verwalten kann. Wir können das Golang-Projekt in einen systemd-Dienst kapseln, um einen automatischen Start, einen automatischen Neustart und andere Funktionen zu erreichen. 🎜🎜Das Folgende ist ein Beispiel für eine Systemd-Dienstdatei: 🎜rrreee🎜In dieser Dienstdatei müssen wir die Beschreibung, den Typ, den Neustartmechanismus und andere Konfigurationselemente des Dienstes definieren. Informationen zur Bedeutung bestimmter Konfigurationselemente finden Sie in der offiziellen Dokumentation von systemd. 🎜🎜Nachdem die Konfiguration abgeschlossen ist, können wir den Dienst mit dem folgenden Befehl starten: 🎜rrreee🎜Es ist zu beachten, dass die Dienstdatei im Verzeichnis /etc/systemd/system gespeichert werden muss und endet mit . 🎜🎜Zu diesem Zeitpunkt haben wir den gesamten Prozess der Bereitstellung des Golang-Projekts auf dem Ubuntu-System abgeschlossen. Durch die Beherrschung der oben genannten Fähigkeiten können Sie Golang-Projekte schnell und stabil bereitstellen und ausführen und so die Entwicklungseffizienz und Codezuverlässigkeit verbessern. 🎜

Das obige ist der detaillierte Inhalt vonSo stellen Sie ein Golang-Projekt auf einem Ubuntu-System bereit. 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