方式一:tmux(Terminal MultipleXer)
在使用服务器的过程中,会大文件传输,等待运行等长时间任务中,可能由于断电断网以及登录限制等出现连接中断,或者更换设备等问题,总之,关闭电脑,服务器中的任务不中断。因此,使用tmux,
终端复用器,通过一个窗口操作多个会话的工具,
安装tmux:apt-get install tmux
启动 tmux:tmux
创建一个新的回话:tmux new -s session_name
选择其他会话:Ctrl+B + s
退出会话: Ctrl+B+ d
创建一个新的窗口: Ctrl+B + c 。星号(*)在这里表示的是“当前处于活跃状态的窗口”
窗口间切换:Ctrl-B +按数字。
修改窗口名称:Ctrl-B +,。
关闭当前窗口: Ctrl-B+&
面板分为上下两块:Ctrl-B+ ”
面板分为左右两块:Ctrl-B+ %
选择面板:Ctrl-B+ 方向键
按住C+b不放,同时按住方向键,可以调节光标所在窗口的大小
关闭当前面板:Ctrl-B+x
查看当前所有会话:tmux ls
重新进入会话:tmux a -t session_name
tmux服务可以开启多个session
一个session可以开多个window
一个window可以分多个subwindow
-session1
---window1
------subwindow1
------subwindow2
------subwindow3
------subwindow4
---window2
-session2
---window3
---window4
方式二:使用nohup 和&
&的作用
在后台运行,当前终端可以执行别的命令,当前终端关闭,就会停止,依赖当前终端的进程
正常情况下,log会直接在终端打印,这样会很乱。可以使用这样的格式 ./test >> out.txt 2>&1 & 把输出重定向到当前目录下的out.txt下
nohup (no hang up)
不挂断的运行,关闭终端,退出登录,程序依然运行
缺省时,所有的输出在nohup.out文件中
两个结合,nohup command &
永久的在后台运行
打印输出的结果在指定的文件夹里面查看
使用类似nohup ./test > myout.txt 2>&1 & 把输出的log文件保存在当前目录的myout.txt中
如果要提前结束运行的程序时:通过这个ps aux|grep "xxx.py"找到目前正在运行程序的进程数
如果要停止话,kill xxx, 直接关掉进程,
对于多进程程序,需要查看正在运行的多个进程的PID,依次kill,这样比较麻烦
来源地址:https://blog.csdn.net/weixin_38402519/article/details/129361779