标签搜索

Python在Linux后台运行

冷言
2023-03-03 / - 评论 / - 阅读

写了一个python脚本,需要一直运行,刚开始使用了宝塔应用管理器和python管理器,都会出现运行着就停止运行的情况,而且上面还是显示在运行着....于是打算直接使用nohup运行。

方法

先进入脚本文件的根目录

cd /www/Python/dy/

使用nohup运行

nohup python -u server.py > message.log 2>&1 &

解释

nohup 和 & 的区别

& 是指在后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出。

nohup是:

运行 nohup --help

Run COMMAND, ignoring hangup signals. 可以看到是“运行命令,忽略挂起信号”就是不挂断的运行,注意没有后台运行功能。

那么,我们可以巧妙的吧他们结合起来用就是

nohup COMMAND &

这样就能使命令永久的在后台执行。

-u

python的输出进行了缓冲,导致message.log并不能够马上看到输出。

为python添加-u 参数,使得python不启用缓冲。

message.log

如果不填写的话,系统默认是写入到运行文件同位置output.out文件内,填写的话则会重定向到指定的文件。

2>&1

0 表示stdin标准输入,用户键盘输入的内容

1 表示stdout标准输出,输出到显示屏的内容

2 表示stderr标准错误,报错内容

2>&1是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。
2>&1中的&是为了区别文件1和1(标准输出),假如为2>1,就成了将错误内容输出到文件1中,而不是标准输出中

其他

挂起后台进程以后想查看是否运行或者关闭该怎么办呢?别急,我们继续。

查看进程

ps aux | grep server.py

关闭进程

kill -9 12526

12526是进程ID

实时追踪文件输出到屏幕

tailf message.log


2

评论

博主关闭了本网站的评论