linux锁定后台进程

在 Linux 中,锁定后台进程可以确保该进程在后台运行,即使当前用户退出登录或终端会话结束。这样可以保持进程的持续运行,而不受登录状态或终端连接的影响。

一、加“&”符号

如果想让程序在后台运行,执行程序的时候,命令的最后面加“&”符号。

执行文件

1
./test.py &

查看是否在后台运行

1
ps -aux | grep test

后台的程序 需要关闭时,需要kill命令停止

1
kill  pid

这种方法,查看运行日志很不方便

二、nohup命令 (权限)

1
nohup python -u test.py > test.log 2>&1 & 

日志文件追加到文件中
test.log: 运行的日志,或你的文件的输出内容

& 是一个描述符,如果1或2前不加&,会被当成一个普通文件。

1>&2 意思是把标准输出重定向到标准错误.

2>&1 意思是把标准错误输出重定向到标准输出。

&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中

在run.py的目录默认直接生成了nohup.out文件,有些系统无法执行,权限不足时 需要加sudo

三、screen命令

Screen是一个全屏窗口管理器,

它在多个进程(通常是交互式shell)之间多路传输物理终端。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
##### 安装screen
yum install -y screen
apt-get install screen
# 创建一个新的窗口
screen -S test
# 进入窗口后 执行文件
python test.py
# 退出当前窗口
ctrl+a+d (方法1:保留当前窗口)
screen -d (方法2:保留当前窗口)
exit (方法3:退出程序,并关闭窗口)
# 查看窗口
screen -ls
# 重新连接窗口
screen -r id或窗口名称
# 示例:
screen -r test

#快捷键
Ctrl+a c :创建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口
exit :关闭当前窗口,并且切换到下一个窗口
Ctrl+a d :退出当前终端,返回加载screen前的shell命令状态