开发者社区 问答 正文

运行的程序每隔一段时间被自动杀掉

LZ刚开始用阿里云主机
今天在主机上用flask搭建了一个站,但是在运行的时候发现每隔一段时间运行的站点主程序就会莫名其妙被kill掉。
程序是用Python写的,开始用SSH远程连接后直接Python app.py运行,发现每隔一段时间SSH会主动断开,然后app进程也就退出来了;
再后来查了些资料改进为nohup python app.py & 来后台无挂起执行,发现SSH退出后程序不会立即退出,但是隔一定时间后还是会莫名其妙不见……

不知大家有没有遇到过类似问题,请教各位高手。多谢!

另外,SSH每隔一段时间会主动断开有什么好的解决办法吗?

展开
收起
lgwinner 2015-04-19 21:48:15 16735 分享 版权
4 条回答
写回答
取消 提交回答
  • 1,写LOG记录退出时的信息

    2,如果检查不出问题,用screen命令,执行while true; do python app.py ; done,这样每次退出会自动重新启动,死循环。
    2015-04-20 00:52:28
    赞同 展开评论
  • Re运行的程序每隔一段时间被自动杀掉
    有这样的情况 随机被kill 索性我换方法了
    2015-04-20 00:01:57
    赞同 展开评论
  • 回1楼云语科技的帖子
    不是,是我隔一会发现网站不能访问后,登录到服务器上查看对应进程发现已经没有了

    -------------------------

    回3楼都是水的帖子
    换成了什么方法解决的问题?

    -------------------------

    回5楼云语科技的帖子
    查看程序日志和系统的日志找到了问题,确实是因为触发了程序错误导致被退出来。
    非常感谢!

    -------------------------

    回4楼服务器之家的帖子
    感谢指点
    2015-04-19 22:12:07
    赞同 展开评论
  • 超过10年通信设备研发,精通网络传输,专注于跨国网络问题解决。
    Re运行的程序每隔一段时间被自动杀掉

    你说程序被kill掉,是通过什么信息判断出来的呢? 系统的log吗?

    -------------------------

    回2楼lgwinner的帖子
    那你需要先定位到退出的原因。

    程序在后台运行后,跟ssh的退出已经没有关系。

    如果你的程序过一段时间后就自动退出了,可能有两种原因:
    1)你的程序有bug,运行过程中触发bug,导致退出;
    2)你的程序使用了大量的内存,导致系统oom-killer把你的程序给杀掉了,oom是out-of-memory的缩写;

    如果是第二种情况,在系统的/var/log/syslog里面会有记录,这种情况通过查看/var/log/syslog的内容,检索是否有你的应用程序的信息可以判断;
    第一种情况,需要你自己使用python调试器,调试程序是什么时候因为什么原因退出的。
    2015-04-19 21:53:34
    赞同 展开评论
问答分类:
问答地址: