Maison >développement back-end >Golang >Comment déployer et défendre des applications Golang à l'aide de systemd

Comment déployer et défendre des applications Golang à l'aide de systemd

PHPz
PHPzoriginal
2023-04-05 09:09:501416parcourir

À l'ère du cloud computing, le déploiement rapide permet aux développeurs de livrer rapidement des produits et de répondre rapidement aux besoins des utilisateurs. Golang est devenu ces dernières années un langage de programmation indispensable dans le domaine du cloud computing. Il combine une compilation rapide et des performances de concurrence efficaces. Mais que se passe-t-il si l’application plante ? Afin de maintenir l'application en marche, nous devons utiliser un démon pour surveiller et redémarrer l'application. Cet article expliquera comment utiliser systemd pour déployer et défendre des applications Golang.

1. Installation et configuration systemd

systemd est l'un des systèmes d'initialisation et de gestion de démons les plus populaires aujourd'hui. Il est responsable du démarrage des services et des démons du système, de la surveillance de leur état et de leur redémarrage si nécessaire. Avant d'utiliser systemd, il doit être installé.

Installez systemd à l'aide de la commande suivante :

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

2. Créez un fichier de service

Avant de créer le démon, nous devons créer un fichier de service systemd. Un fichier de service est un fichier texte contenant des informations décrivant un service. L'emplacement du fichier de service se trouve dans le répertoire /etc/systemd/system/. Par exemple, nous créons un fichier de service nommé 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
Modifiez le fichier golang-demo.service :

rrreee

Ajoutez le contenu suivant dans le fichier :

rrreee

où, la partie

  • [Unit] contient le nom et la description du service, et quand le service doit être démarré (dans network.target code> retour).
  • La section [Service] décrit les détails du démarrage du service, y compris l'utilisateur, le groupe utilisé et l'emplacement du fichier de script de démarrage.
  • La section [Install] spécifie la cible sur laquelle systemd doit démarrer le service.
3. Créer une application golang🎜🎜Ensuite, nous devons créer une application golang nommée golang-demo. Dans le terminal, utilisez la commande git suivante pour cloner une simple application go : 🎜rrreee🎜Allez dans le répertoire du projet, puis construisez et compilez l'application : 🎜rrreee🎜Nous devons copier le fichier binaire généré golang-demo Déplacez-vous vers le répertoire <code>/usr/local/bin. 🎜rrreee🎜4. Démarrez le service et testez-le🎜🎜Maintenant, nous sommes prêts à démarrer le service et à le tester. Utilisez la commande pour démarrer le service : 🎜rrreee🎜 Vérifiez l'état du service : 🎜rrreee🎜 Si vous voyez actif (en cours d'exécution), cela signifie que le service est en cours d'exécution. Vous pouvez accéder à http:/. /localhost:8080 via le navigateur. Cela devrait aller, voir le résultat. 🎜🎜5. Démarrage automatique au démarrage🎜🎜Comme mentionné précédemment, dans la section [Install], nous spécifions sur quelle cible systemd doit démarrer le service. Maintenant, nous pouvons utiliser la commande suivante pour démarrer automatiquement au démarrage : 🎜rrreee🎜Maintenant, le système démarrera automatiquement le service à chaque démarrage. 🎜🎜6. Conclusion🎜🎜Cet article explique comment utiliser systemd pour déployer et protéger les applications Golang. systemd est un gestionnaire de démons populaire qui peut facilement gérer le démarrage, l'arrêt, le redémarrage et d'autres opérations des services, permettant à nos applications de toujours rester en ligne. 🎜

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!

Déclaration:
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