[LINUX] Serveur HTTP facile et paramètres de démarrage automatique de Systemd dans Go

Sur cette page, nous publierons un simple code de serveur HTTP dans Go, et systemd lancera automatiquement le programme du service Linux (Ubuntu, Archlinux).

Code de serveur HTTP simple dans Go

$ pwd
$HOME/go/src/SimpleHttp

$ cat SimpleHttp.go
package main

import (
        "fmt"
        "net/http"
)

func SimpleHttpHandler(w http.ResponseWriter, r *http.Request) {
        fmt.Fprint(w, "Serveur HTTP simple&Installation du service Systemd")
}

func main() {
        http.HandleFunc("/", SimpleHttpHandler)

        //Démarrer sur le port 8080
        http.ListenAndServe(":8080", nil)
}

Construire SimpleHttp

$ pwd
$HOME/go/src/SimpleHttp

$ tree
.
└── SimpleHttp.go

0 directories, 1 file

$ go build SimpleHttp.go

$ tree
.
├── SimpleHttp
└── SimpleHttp.go

0 directories, 2 files

Contenu du fichier unité SimpleHttp.service

$ cat /lib/systemd/system/SimpleHttp.service 
[Unit]
Description = SimpleHttp.service daemon

[Service]
Environment="GOPATH=$HOME/go"
ExecStart=$HOME/go/src/SimpleHttp/SimpleHttp
Restart=always
Type=simple
User=ubuntu
Group=ubuntu
# Other directives omitted
# (file size)
LimitFSIZE=infinity
# (cpu time)
LimitCPU=infinity
# (virtual memory size)
LimitAS=infinity
# (open files)
LimitNOFILE=64000
# (processes/threads)
LimitNPROC=64000

[Install]
WantedBy = multi-user.target

Recharger le service SimpleHttp

Exécutez toujours la commande suivante après avoir créé ou modifié un nouveau fichier d'unité, SimpleHttp.service.

sudo systemctl daemon-reload

Activer le service SimpleHttp

$ sudo systemctl enable SimpleHttp.service

Démarrer le service SimpleHttp

$ sudo systemctl start SimpleHttp.service

Arrêter le service SimpleHttp

sudo systemctl stop SimpleHttp.service

Désactiver le service SimpleHttp

$ sudo systemctl disable SimpleHttp.service

Vérifier la version d'Arch Linux

$ uname -a
Linux arch.local 5.6.10-arch1-1 #1 SMP PREEMPT Sat, 02 May 2020 19:11:54 +0000 x86_64 GNU/Linux

$ lsb_release -a
LSB Version:	1.4
Distributor ID:	Arch
Description:	Arch Linux
Release:	rolling
Codename:	n/a

Vérifiez la version d'Ubuntu

$ uname -a
Linux ip-172-31-8-186 5.3.0-1017-aws #18~18.04.1-Ubuntu SMP Wed Apr 8 15:12:16 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.4 LTS
Release:	18.04
Codename:	bionic

Recommended Posts

Serveur HTTP facile et paramètres de démarrage automatique de Systemd dans Go
Créer un serveur Web en langage Go (net / http) (1)
Serveur HTTP facile avec Python
Paramètres d'installation et de démarrage automatique de Tomcat
Ecrire un serveur HTTP / 2 en Python
Paramètres réseau et confirmation dans CentOS7
Surveillance simple du serveur avec AWS Lambda (Python) et notification des résultats avec Slack
Construisez un serveur léger en Python et écoutez les extensions HTTP de Scratch 2
Implémenter et comprendre l'arborescence de recherche d'union dans Go
Implémenter la récurrence et l'exploration commémoratives dans Python and Go
Traitement Y / n avec bash, Python et Go
Lancer un serveur HTTP dans le répertoire courant
Créer les paramètres initiaux et les applications de personnel dans Django
GRPC commençant par le serveur Go et le client Dart