它山之石可以攻玉

键盘上的生活
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

python 服务器后台运行

Posted on 2021-09-15 16:13  陈达辉  阅读(896)  评论(0编辑  收藏  举报

基本用法:
进入要运行的py文件目录前

nohup python -u test.py > test.log 2>&1 & //打印日志
nohup xxxx >/dev/null 2>&1 & //不打印日志

 

含义解释:
nohup 不挂起的意思

python test.py python运行test.py文件

-u 代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟

test.log 将输出日志保存到这个log中

2>1 2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
2>&1 换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

& 最后一个& ,代表该命令在后台执行

/dev/null :Linux下有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

回到shell之后不能直接关闭自己的终端,必须输入exit来退出SSH才能保证该脚本会一直在后台运行

[1] 2880

代表进程2880中运行。

查看nohub命令下运行的所有后台进程:
jobs
查看后台运行的所有进程:
ps -aux

查看后台运行的所有python 进程:
ps aux |grep python
或者

ps -ef | grep python

*删除进程
kill -9 [进程id]

-9 的意思是强制删除