Home >Backend Development >Golang >How to deploy and defend golang applications using systemd
In the era of cloud computing, rapid deployment allows developers to quickly deliver products and respond quickly to user needs. Golang has become an indispensable programming language in the field of cloud computing in recent years. It combines fast compilation and efficient concurrency performance. But what if the application crashes? In order to keep the application running, we need to use a daemon to monitor and restart the application. This article will introduce how to use systemd to deploy and defend golang applications.
1. Installation and configuration systemd
systemd is one of the most popular initialization and daemon management systems today. It is responsible for starting system services and daemons, monitoring their status and restarting them when necessary. Before using systemd, it must be installed.
Use the following command to install systemd:
$ sudo apt-get update $ sudo apt-get install -y systemd
2. Create a service file
Before creating the daemon, we need to create a systemd service file. A service file is a text file that contains information describing a service. The location of the service file is in the /etc/systemd/system/
directory. For example, we create a service file named golang-demo.service
:
$ sudo touch /etc/systemd/system/golang-demo.service
Edit the golang-demo.service
file:
$ sudo nano /etc/systemd/system/golang-demo.service
Add the following to the file:
[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
where the
[Unit]
section contains the service name and description, and when the service should be started ( after network.target
). The [Service]
section describes the details of starting the service, including the user, group used, and the location of the startup script file. The [Install]
section specifies the target on which systemd should start the service. 3. Create a golang application
Next, we need to create a golang application named golang-demo
. In the terminal, use the following git command to clone a simple go application:
$ git clone https://github.com/shalar/golang-demo.git
Go into the project directory, and build and compile the application:
$ cd golang-demo $ go build
We need to copy the generated binary filegolang-demo
Move to the /usr/local/bin
directory.
$ sudo mv golang-demo /usr/local/bin/
4. Start the service and test it
Now, we are ready to start the service and test it. Use the command to start the service:
$ sudo systemctl start golang-demo.service
Check the status of the service:
$ sudo systemctl status golang-demo.service
See active (running)
, which means the service is running and can be accessed through the browser http:/ /localhost:8080, you should be able to see the output.
5. Auto-start at boot
As mentioned above, in the [Install]
section, we specify which target systemd should start the service on. Now, we can use the following command to start automatically at boot:
$ sudo systemctl enable golang-demo.service
Now, the system will automatically start the service every time it is started.
6. Conclusion
This article introduces how to use systemd to deploy and protect golang applications. systemd is a popular daemon manager that can easily manage the starting, stopping, restarting and other operations of services, keeping our applications always online.
The above is the detailed content of How to deploy and defend golang applications using systemd. For more information, please follow other related articles on the PHP Chinese website!