Linux进程断连后重新进入该进程
Putty or Xshell
首先推荐这两款软件附下载地址
进入全屏
全屏:Alt + Enter
linux进程
直接输入python main.py即可调度进行,但是在断开连接后,该进程就会被消除,这很让人头疼。
后台执行
一般运行linux上的程序都是执行 .sh 文件(./sh文件),那如果不影响当前CMD窗口的操作,需要后台运行怎么办呢?
这时就需要借助 nohup 和 & 命令来实现。
nohup python3 main.py &
- nohup
加在一个命令的最前面,表示不挂断的运行命令
- &
加载一个命令的最后面,表示这个命令放在后台执行
查看后台运行的命令
有两个命令可以来查看,ps 和 jobs。区别在于 jobs 只能查看当前终端后台执行的任务,换了终端就看不见了。而ps命令适用于查看瞬时进程的动态,可以看到别的终端的任务。
- jobs 查看后台运行的命令
dogandcat$ jobs
[1]+ Running nohup python3 pridict.py &
ps查看进程
/dogandcat$ ps PID TTY TIME CMD 20712 pts/6 00:00:00 bash 20793 pts/6 02:49:24 python3 22397 pts/6 00:00:00 ps
kill
(1)通过jobs命令查看jobnum,然后执行 kill %jobnum
(2)通过ps命令查看进程号PID,然后执行 kill %PID
如果是前台进程的话,直接执行 Ctrl+c 就可以终止了
前后台进程的切换与控制
(1)fg命令
将后台中的命令调至前台继续运行
如果后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。
(2)Ctrl + z 命令
将一个正在前台执行的命令放到后台,并且处于暂停状态
(3)bg命令
将一个在后台暂停的命令,变成在后台继续执行
如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。
演示
- 首先后台运行一个进程:
- 用jobs找到进程号
- fg %1 回到进程
退出:Ctrl + Z
-bg %1 继续执行进程
尝试断开连接后jobs无法找到进程号
第二次尝试采用GUN Screen
Screen Python3 main.py
创建一个窗口运行python 运行文件
Screen -ls
找到屏幕号
screen -r 27884
进入屏幕号
linux远程断联后重新进入该进程