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.
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.
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:
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
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.
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.
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:
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.
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.
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:
Enter the following command in the terminal to install screen:
$ sudo apt-get install screen
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 in the screen session:
$ /path/to/myprogram
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.
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!