Maison >développement back-end >Golang >Comment déployer et défendre des applications Golang à l'aide de systemd
À 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.serviceModifiez 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).
[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. [Install]
spécifie la cible sur laquelle systemd doit démarrer le service. 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!