如何让 Python 代码常驻在服务器进程中

 我来答
网站安全服务器安全
2018-06-07 · 百度认证:青岛四海通达电子科技有限公司官方账号
网站安全服务器安全
青岛四海通达电子科技有限公司坐落于美丽的海滨城市青岛,是专业致力于网站安全和服务器安全的领导者和推动者。安全服务于互联网金融、游戏平台、移动APP软件、O2O&电商、支付平台、企业网站等
向TA提问
展开全部

一、nohup

nohup,即 no hangup,nohup 的用途就是让提交的命令忽略 hangup 信号,从而使我们的进程避免中途被中断。它可以让 python 脚本和服务器连接端的 session 分离,以达到退出后依旧执行:

$ chmod +x /your_path/yourscript.py   # 先设置可执行权限$ nohup python /your_path/yourscript.py# 切记退出的 Terminal 的时候,不要 ctrl+c 退出,而是直接关闭,不然 Nohup 就被你关闭了。

如何关闭这个一直执行的进程呢:

# 找到对应的进程 PID
$ ps -ef | grep python

# 返回内容如:
user      2430     1  0 Jul03 ?        00:00:01 /usr/bin/python -tt /usr/sbin/yum-updatesd

# kill 掉该进程即可:
$ kill -9 2430

PS:nohup 在服务器重启之后就失效了,所以并不完美。

二、将命令写入 Linux 启动脚本

Linux 在启动的时候会执行 /etc/rc.local 里面的脚本,所以只要在这里添加执行命令就可以:

$ vim /etc/rc.local

# 如果是 Centos 添加以下内容:
/your_path/python3.4 /your_path/yourscript.py

# 以上内容需要添加在 exit 命令前,而且由于在执行 rc.local 脚本时,PATH
环境变量未全部初始化,因此命令需要使用绝对路径

PS:这种方式的缺点是如果脚本挂了,那么不会自动重新启动。

三、使用 Supervisor 进程管理工具

详见这篇文章:使用 Supervisor 管理服务器后台进程,在服务器重启和脚本出错后,可以完美重启,推荐。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式