The content of this article is to introduce the method of using Screen to manage remote sessions. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
When developing locally, I often need to use remote connections to connect to Linux servers. At the beginning, I opened several SSH windows as long as I had several remotes. This method is very original and direct, but it is always affected by the problem. Password input is enough. Even if you use SSH to log in without a password, you will feel that entering SSH commands every time is not fast at all. Moreover, if you open too many windows, it will be confusing and difficult to manage. In this case, the tools on Linux There are many, let’s learn about thescreen
tool today.
When introducing thescreen
tool, let us first discuss why after connecting to the server, when executing a long-term task, we close the remote connection window and the task is killed?
In Linux/Unix, there are the following concepts:
Process group: a collection of one or more processes, each process group has a unique process group ID;
session: one or A collection of multiple process groups has a unique session leader, and the session ID is the leader process ID;
The session can have a separate session terminal, which is the same as the control terminal. The first process of the connected session is called the controlling process, the process currently interacting with the terminal is called the foreground process group, and the remaining process groups are called the background process group.
Tool POSIX.1 definition:
The default action of the hang-up signal (SIGHUP) is to terminate the program;
When the terminal interface detects that the network connection is disconnected, it will send a SIGHUP signal to the control process (the first process of the session);
If the first process of the session terminates, this signal is sent To the foreground process group of the session;
When a process exits and an orphan process group is generated, if an orphan process group process is in the STOP state, SIGHUP and SIGCONT signals are sent to the process group. All processes in the process group.
Therefore, when the network is disconnected or the window is closed, the control process receives the SIGHUP signal and exits, which will cause other processes in the session to exit.
Open two SSH terminal windows and execute theping
command in the first one:
In another terminal window, find the process ID ofping
as 22132, and its parent process ID is 21803, that is, log in to zsh:
Usingps -xj
, you can see that logging in to zsh (PID 21803) and ping are in the same session, zsh is the first process in the session, so the process group PGID is 21803 , the process group PGID of ping is 22132, which is the foreground process group.
At this time, we closed the first SSH remote window and saw that the ping process was killed in another window:
This shows that when we perform a time-consuming task, if we close the window, the task process will be killed, and it will not continue to execute in the background as we expected.
Now, there is no need to say more about whatscreen
does, let’s just talk about how to use it. Bar.
1. Directly execute thescreen
command
##screenwill create a full-screen window for executing the shell. You can You can see that the title of the window indicates that it is in the
screenprogram. In this window, you can execute commands at will. If you want to exit, enter the
exitcommand.
// 方法1 按键盘Ctrl+a +c, 会心打开一个screen窗口 // 方法2 screen 需要执行的任务的命令,比如: screen ping www.baidu.com
screenwindow switching
方法1 键盘Ctrl+a +[0..9] 方法2 键盘Ctrl+a +n, 下一个screen窗口 键盘Ctrl+a +p, 上一个screen窗口
Screen is a window manager that can multiplex a physical terminal between multiple processes. Screen also has the concept of session. Users can create multiple screen windows in a screen session, and in each The screen window is like operating a real SSH connection window.
Recommended video tutorials: "Linux Tutorial"
The above is the entire content of this article, I hope it will be helpful to everyone's learning. For more exciting content, you can pay attention to the relevant tutorial columns of the PHP Chinese website! ! !
The above is the detailed content of How to use Screen to manage remote sessions?. For more information, please follow other related articles on the PHP Chinese website!