iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >自动重启挂掉的python脚本
  • 554
分享到

自动重启挂掉的python脚本

脚本自动重启python 2023-01-31 01:01:16 554人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

跑程序,因为内存问题或者其它blabla问题(总之不是代码问题),程序可能会偶尔挂掉,我们又不能整天盯着程序,怎么办呢?写个脚本来检查程序是否挂掉,如果挂掉就重启,这是一个不错的想法,具体做法依操作系统而不同。 方法1 在lin

跑程序,因为内存问题或者其它blabla问题(总之不是代码问题),程序可能会偶尔挂掉,我们又不能整天盯着程序,怎么办呢?写个脚本来检查程序是否挂掉,如果挂掉就重启,这是一个不错的想法,具体做法依操作系统而不同。

方法1
linux下可以新建一个名为run.sh的脚本:

#!/bin/sh
while [ 1 ]; do
  python program.py --params
done

在命令行中这样启动:

sh run.sh

其中program.py是要运行的Python脚本,–params是参数。

windows下可以类似地建个bat文件,由于bat不太熟,所以这部分就先空着。

方法2
在python中增加一些额外检查异常的代码,如果发生异常,就重新执行,这里用的是递归的方法。下面的例子中,我设置count最大为3,为了避免无限递归下去。

import time

count = 0

def compute_number():
    for i in xrange(10):
        print 'count number: %s' % str(i+1)
        time.sleep(1)
    raise Exception("a", "b")

def main():  
    print "AutoRes is starting"
    print "Respawning"

    global count

    if count < 3:
        try:
            count += 1
            compute_number()
        except Exception, e:
            print e
            main()
        finally:
            print 'success'

if __name__ == "__main__":  
    main()

方法3
从这里 借鉴的做法:

#!/usr/bin/env python

import os, sys, time

def main():  
    print "AutoRes is starting"
    executable = sys.executable
    args = sys.argv[:]
    args.insert(0, sys.executable)

    time.sleep(1)
    print "Respawning"
    os.execvp(executable, args)

if __name__ == "__main__":  
    main()

多线程
另外还做了个多线程的小实验,大家可以看看。

import time
from multiprocessing import Pool

count = 0

def compute_number(num):
    for i in xrange(3):
        print 'current process = %s, count number: %s' % (str(num),str(i+1))
        time.sleep(1)
    raise Exception("a", "b")

def main(num):
    print '===================='
    print "current process = %d" % num

    print "Respawning"

    global count

    if count < 2:
        try:
            count += 1
            compute_number(num)
        except Exception, e:
            print e
            main(num)
        finally:
            print 'success'

if __name__ == "__main__":  

    pool = Pool(2)
    pool.map(main,[1,2])
    pool.close()
    pool.join()

输出如下:

====================
current process = 1
Respawning
current process = 1, count number: 1
====================
current process = 2
Respawning
current process = 2, count number: 1
current process = 1, count number: 2
current process = 2, count number: 2
current process = 1, count number: 3
current process = 2, count number: 3
('a', 'b')
====================
current process = 1
Respawning
current process = 1, count number: 1
('a', 'b')
====================
current process = 2
Respawning
current process = 2, count number: 1
current process = 1, count number: 2
current process = 2, count number: 2
current process = 1, count number: 3
current process = 2, count number: 3
('a', 'b')
====================
current process = 1
Respawning
success
success
('a', 'b')
====================
current process = 2
Respawning
success
success

--结束END--

本文标题: 自动重启挂掉的python脚本

本文链接: https://www.lsjlt.com/news/184303.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 自动重启挂掉的python脚本
    跑程序,因为内存问题或者其它blabla问题(总之不是代码问题),程序可能会偶尔挂掉,我们又不能整天盯着程序,怎么办呢?写个脚本来检查程序是否挂掉,如果挂掉就重启,这是一个不错的想法,具体做法依操作系统而不同。 方法1 在lin...
    99+
    2023-01-31
    脚本 自动重启 python
  • linux下如何实现监视进程和崩溃挂掉后自动重启的shell脚本
    这篇文章将为大家详细讲解有关linux下如何实现监视进程和崩溃挂掉后自动重启的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务...
    99+
    2023-06-09
  • 重写启动脚本
    !/bin/bash user=rootport=3306CmdPath=/opt/mysql/binpassword=xxxxxxxxxx base_dir=/opt/mysqlinst_dir=/dat...
    99+
    2024-04-02
  • 如何编写linux自动重启tomcat脚本
    这篇文章主要介绍“如何编写linux自动重启tomcat脚本”,在日常操作中,相信很多人在如何编写linux自动重启tomcat脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何编写linux自动重启to...
    99+
    2023-06-09
  • Linux中python自启动和定时启动脚本怎么写
    这篇“Linux中python自启动和定时启动脚本怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux中pytho...
    99+
    2023-06-28
  • Spring Boot 启动、停止、重启、状态脚本
    此脚本用来管理 SpringBoot 项目的进程状态。 有提示功能。 把脚本丢到项目文件夹, 添加执行权限即可。 如果 jenkins 使用这个脚本, 需要在 java -jar 命...
    99+
    2024-04-02
  • Python自动更新脚本
    本脚本主要针对python2.6升级至python2.7.12,并且解决了升级后不能使用yum的问题。添加了ipython功能##########################!/bin/bash path="/home/tools" i...
    99+
    2023-01-31
    自动更新 脚本 Python
  • 过年回家抢票,让光猫自动重启的小脚本
    1 from selenium import webdriver 2 from time import sleep 3 import datetime 4 url = "http://192.168.1.1/login_smar...
    99+
    2023-01-30
    脚本 自动重启 让光猫
  • python自动化脚本nginx_status
    运维自动化,已经成为运维必不可少的一部分,下面附上自己写的监控nginx_status脚本,大神轻喷#!/usr/bin/python # coding: utf-8 import urllib.request...
    99+
    2023-01-30
    脚本 python nginx_status
  • Tomcatstarup.bat脚本开机自启动的实现
    目录1:在tomcat bin目录下修改catalina.bat文件2:如果需要tomcat启动后窗口不关闭,则需要在tomcat bin目录下修改startup.bat文件3:在t...
    99+
    2024-04-02
  • Linux开机自动启动的脚本怎么写
    这篇文章的内容主要围绕Linux开机自动启动的脚本怎么写进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!一、在/etc/rc.local中添加 如果不...
    99+
    2023-06-28
  • ubuntu22.04设置开启自启动命令脚本
    前言: 是这样的,新的机器要挂在nfs存储,报错: root@85-document:~# mount -t nfs -o nolock 192.168.1.xx:/disk/xiao /home/xiao/disk1mount: /hom...
    99+
    2023-09-10
    linux 服务器
  • Python的自动化脚本有哪些
    Python的自动化脚本有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言:大家平时有没有注意到你每天可能会执行许多的重复的任务,例如阅读 pdf、播放音...
    99+
    2023-06-22
  • Python脚本自动下载小说
            本人喜欢在网上看小说,一直使用的是小说下载阅读器,可以自动从网上下载想看的小说到本地,比较方便。最近在学习Python的爬虫,受此启发,突然就想到写一个爬取小说内容的脚本玩玩。于是,通过在逐浪上面分析源代码,找出结构特点之后...
    99+
    2023-01-31
    脚本 小说 Python
  • Python自动化脚本有哪些
    本篇内容主要讲解“Python自动化脚本有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python自动化脚本有哪些”吧!10个杀手级应用的Python自动化脚本01、图像优化器这个伟大的自...
    99+
    2023-07-05
  • node.js中如何使用pm2实现占用CPu100%自动重启脚本
    这篇文章将为大家详细讲解有关node.js中如何使用pm2实现占用CPu100%自动重启脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。公司使用了nodejs开发了一部...
    99+
    2024-04-02
  • shell脚本怎么实现监控php-fpm并自动重启服务
    这篇文章主要讲解了“shell脚本怎么实现监控php-fpm并自动重启服务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell脚本怎么实现监控php-fpm并自动重启服务”吧!脚本代码:...
    99+
    2023-06-09
  • 开机自动运行python脚本
    1、新建rc.localtouch /etc/rc.d/rc.localvim /etc/rc.d/rc.local#!/bin/bash#下面是需要执行的脚本2、赋予可执行权限chmod +x /etc/rc.d/rc.local3、编辑...
    99+
    2023-01-31
    脚本 自动运行 python
  • python实现自动抢课脚本
    自动抢课脚本使用手册 @danteking dating from 2021.12.7 and last updating at 2021.12.8 gitee仓库 github仓库 借助pyaut...
    99+
    2023-09-08
    python 脚本语言 图像识别
  • shell脚本启动、关闭、重启以及查看状态
    我使用的语句是case 语句 case     变量值     in   ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作