Home >Backend Development >Golang >How to close the terminal in Golang without affecting the program running

How to close the terminal in Golang without affecting the program running

PHPz
PHPzOriginal
2023-04-06 08:59:051135browse

Golang is a very popular programming language, especially in network programming and concurrent programming. However, when using Golang to develop programs, we may encounter the problem of closing the program after closing the terminal. This article will introduce how to close the terminal in Golang without affecting the running of the program.

  1. Implementing background running of the program

In Linux or Unix systems, the Golang program can be run in the background, so that the program will continue to run after closing the terminal. The implementation method is as follows:

Use the nohup command to put the program into the background to run:

$ nohup ./myprogram &

Among them, myprogram is the program you want to run in the background.

  1. Use open-falcon-supervisor for management

open-falcon-supervisor is an open source Golang process management tool that can monitor, manage and restart processes. Using open-falcon-supervisor can achieve the effect that the program will not stop running after closing the terminal. The specific usage is as follows:

  • Install open-falcon-supervisor

Enter the following command in the terminal to install open-falcon-supervisor:

$ curl -Ls http://7xjci3.com1.z0.glb.clouddn.com/tools/supervisor/install.sh | sh
  • Configure supervisord.conf file

Create a supervisord.conf file under the /etc directory and add the following content in it:

[program:myprogram]
command=/path/to/myprogram #程序路径
autostart=true
autorestart=true
startretries=10
redirect_stderr=true
stdout_logfile=/path/to/myprogram.log #日志路径

Among them, myprogram is the program you want to run. name, /path/to/myprogram is the path of the program, and /path/to/myprogram.log is the path of the program’s log file.

  • Start supervisor

Enter the following command in the terminal to start supervisor:

$ supervisord

In this way, the program managed by open-falcon-supervisor will be in the background Run, the program will continue to run after closing the terminal.

  1. Use systemd management

Systemd is a system and service manager under Linux that can monitor, manage and restart processes. Using the systemd management program can achieve the effect that the program will not stop running after closing the terminal. The specific usage is as follows:

  • Write program service file

Create a myprogram.service file under the /etc/systemd/system directory and add the following content in it:

[Unit]
Description=My Program Service
After=network.target

[Service]
Type=simple
ExecStart=/path/to/myprogram #程序路径
Restart=on-failure

[Install]
WantedBy=multi-user.target

Among them, myprogram is the name of the program you want to run, and /path/to/myprogram is the path of the program.

  • Start the service

Enter the following command in the terminal to start the service:

$ systemctl start myprogram

In this way, the program managed by systemd will run in the background, close the terminal The program will continue to run afterward.

  1. Use the screen command

The screen command is a session management tool under Linux. You can create multiple sessions and switch between sessions, and you can also run programs in a session. And put the program to run in the background. Use the screen command to prevent the program from stopping after closing the terminal. The specific usage is as follows:

  • Install screen

Enter the following command in the terminal to install screen:

$ sudo apt-get install screen
  • Create a new screen session

Enter the following command in the terminal to create a new screen session:

$ screen -S myprogram

where, myprogram is the name of the session.

  • Run the program

Run the program in the screen session:

$ /path/to/myprogram
  • Put the program to run in the background

In the screen session, use the Ctrl a d shortcut key to put the program into the background. The program will continue to run after closing the terminal.

  • Restore screen session

Enter the following command in the terminal to restore the previously created screen session:

$ screen -r myprogram

In this way, the program managed using the screen command will Runs in the background and the program will continue to run after closing the terminal.

Summary

The above are several ways to close the terminal without affecting the running of the program when using Golang online. You can choose the appropriate method to manage the program based on your needs and actual situation. I hope this article can be helpful to everyone.

The above is the detailed content of How to close the terminal in Golang without affecting the program running. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn