Maison > développement back-end > Golang > Comment déployer le projet Golang sur le système Ubuntu

Comment déployer le projet Golang sur le système Ubuntu

PHPz
Libérer: 2023-04-27 10:09:26
original
1619 Les gens l'ont consulté

En tant que développeur, savoir déployer et exécuter du code rapidement et de manière stable est l'une des compétences essentielles lors de la création d'un environnement de développement de projet. Cet article expliquera comment déployer des projets Golang sur les systèmes Ubuntu.

Avant de commencer, vous devez suivre les étapes suivantes :

  1. Installer l'environnement Golang
  2. Installer les outils Git
  3. # 🎜🎜#
Ensuite, nous l'expliquerons dans les étapes suivantes.

Étape 1 : Obtenez le code

Tout d'abord, nous devons obtenir le code du projet. Saisissez la commande suivante dans le terminal :

git clone https://github.com/username/repository.git
Copier après la connexion
Où, https://github.com/username/repository.git est l'adresse Git du projet, qui peut être trouvé sur la page d'accueil du projet.

https://github.com/username/repository.git 是项目的 Git 地址,可以在项目主页中找到。

步骤二:编译代码

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

go build main.go
Copier après la connexion

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

步骤三:运行代码

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

./main
Copier après la connexion

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

步骤四:配置后台运行

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

使用 nohup 命令

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

在终端中输入以下命令:

nohup ./main > log.txt 2>&1 &
Copier après la connexion

其中:

  • 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
Copier après la connexion

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

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

systemctl start my-go-app.service
Copier après la connexion

需要注意的是,服务文件需要存放在 /etc/systemd/system 目录下,并以 .serviceÉtape 2 : Compiler le code

Après avoir terminé l'extraction du code, nous devons utiliser la chaîne d'outils Golang pour compiler. Dans le répertoire du projet, saisissez la commande suivante :

rrreee#🎜🎜# Parmi elles, main.go est le fichier d'entrée du projet. Après avoir exécuté cette commande, un fichier exécutable sera généré dans le répertoire du projet. #🎜🎜##🎜🎜#Étape 3 : Exécuter le code #🎜🎜##🎜🎜#Après avoir terminé la compilation, nous pouvons exécuter directement le fichier exécutable. Entrez la commande suivante dans le terminal : #🎜🎜#rrreee#🎜🎜#Après avoir exécuté cette commande, le fichier exécutable commencera à s'exécuter. #🎜🎜##🎜🎜#Étape 4 : Configurer l'exécution en arrière-plan #🎜🎜##🎜🎜#Dans le déploiement réel, nous devons exécuter l'application en arrière-plan pour garantir la stabilité et la durabilité. Voici deux méthodes couramment utilisées : #🎜🎜#

Utilisez la commande nohup

#🎜🎜#nohup peut exécuter le programme en arrière-plan et rediriger la sortie vers le fichier spécifié, évitant ainsi le problème de l'utilisateur quittant le terminal force le programme à quitter. #🎜🎜##🎜🎜#Entrez la commande suivante dans le terminal : #🎜🎜#rrreee#🎜🎜#Où : #🎜🎜#
    #🎜🎜#nohup Démarrez le programme et ignorez-le Le signal HUP permet au programme de s'exécuter en arrière-plan ; #🎜🎜##🎜🎜#./main est le chemin et le nom du fichier exécutable #🎜🎜##🎜🎜# ; &gt ; log.txt redirige les informations sorties par le programme vers le fichier log.txt ; > redirige l'erreur standard La sortie est fusionnée avec l'entrée et la sortie standard et redirigée vers le fichier log.txt #🎜🎜##🎜🎜#& Mettez le programme ; en arrière-plan pour fonctionner. #🎜🎜#

Utiliser le service systemd

#🎜🎜#systemd est un outil de gestion système couramment utilisé qui peut gérer les services système, les processus, etc. Nous pouvons encapsuler le projet Golang dans un service systemd pour réaliser un démarrage automatique, un redémarrage automatique et d'autres fonctions. #🎜🎜##🎜🎜#Ce qui suit est un exemple de fichier de service systemd : #🎜🎜#rrreee#🎜🎜#Dans ce fichier de service, nous devons définir la description, le type, le mécanisme de redémarrage et d'autres éléments de configuration du service. Pour connaître la signification des éléments de configuration spécifiques, veuillez vous référer à la documentation officielle de systemd. #🎜🎜##🎜🎜#Une fois la configuration terminée, nous pouvons utiliser la commande suivante pour démarrer le service : #🎜🎜#rrreee#🎜🎜#Il est à noter que le fichier de service doit être stocké dans /etc/systemd/system et se termine par <code>.service. #🎜🎜##🎜🎜#À ce stade, nous avons terminé tout le processus de déploiement du projet Golang sur le système Ubuntu. En maîtrisant les compétences ci-dessus, vous pouvez déployer et exécuter des projets Golang rapidement et de manière stable, améliorant ainsi l'efficacité du développement et la fiabilité du code. #🎜🎜#

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal