精华内容
下载资源
问答
  • 重启Python脚本

    2021-02-11 00:39:40
    我为我的脚本(Python3)创建了一个看门狗计时器,它允许我在出现任何错误时停止执行(下面的代码中没有显示)。但是,我希望能够只使用Python(没有外部脚本)自动重新启动脚本。代码需要跨平台兼容。在我已经尝试过...

    我为我的脚本(Python3)创建了一个看门狗计时器,它允许我在出现任何错误时停止执行(下面的代码中没有显示)。但是,我希望能够只使用Python(没有外部脚本)自动重新启动脚本。代码需要跨平台兼容。在

    我已经尝试过subprocess和execv(os.execv(sys.executable, ['python'] + sys.argv)),但是我在Windows上看到了非常奇怪的功能。我打开命令行,运行脚本(“pythonmyscript.py"). 脚本停止但不退出(通过任务管理器验证),除非我按两次enter键,否则它不会自行重新启动。我想让它自动工作。在

    有什么建议吗?谢谢你的帮助!在import threading

    import time

    import subprocess

    import os

    import sys

    if __name__ == '__main__':

    print("Starting thread list: " + str(threading.enumerate()))

    for _ in range(3):

    time.sleep(1)

    print("Sleeping")

    ''' Attempt 1 with subprocess.Popen '''

    # child = subprocess.Popen(['python',__file__], shell=True)

    ''' Attempt 2 with os.execv '''

    args = sys.argv[:]

    args.insert(0, sys.executable)

    if sys.platform == 'win32':

    args = ['"%s"' % arg for arg in args]

    os.execv(sys.executable, args)

    sys.exit()

    展开全文
  • 写个脚本来检查程序是否挂掉,如果挂掉就重启,这是一个不错的想法,具体做法依操作系统而不同。方法1在linux下可以新建一个名为run.sh的脚本:#!/bin/shwhile [ 1 ]; dopython program.py --paramsdone在命令行中...

    跑程序,因为内存问题或者其它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

    展开全文
  • import subprocessimport osimport datetime#查看进程中程序相关执行的进程数 是否少于2res = subprocess.Popen("ps -ef | grep get_money",stdout=subprocess.PIPE,shell=True)python_process =res.stdout....

    import subprocess

    import os

    import datetime

    #查看进程中程序相关执行的进程数 是否少于2

    res = subprocess.Popen("ps -ef | grep get_money",stdout=subprocess.PIPE,shell=True)

    python_process =res.stdout.readlines()

    counts=len(python_process)

    if counts < 2:

    # writing some log info

    #reboot 重启这个程序

    os.system('/usr/bin/python /Users/Luke/Desktop/get_money.py')

    然后用crontab -e 定时执行改脚本就可以

    定时运行该脚本

    crontab -e 进入编辑模式

    crontab 里面的路径尽量都写绝对路径

    然后输入

    */10 * * * * /usr/bin/python /Users/mac/Desktop/文件名

    每十分钟运行该脚本一次

    【例】上面ps -ef | grep 程序名

    ~ Luke$ ps -ef | grep date_for_file

    503 49785 41020 0 2:09下午 ttys001 0:00.06 /Library/Frameworks/Python.framework/Versions/3.5/Resources/Python.app/Contents/MacOS/Python date_for_file.py

    503 49818 49787 0 2:10下午 ttys003 0:00.00 grep date_for_file

    Tips:

    可以加入 python test.py & 让程序后台执行

    可以把程序写进shell 脚本里批量后台执行

    shell脚本实现

    进程挂掉后重启, 并打印重启后的进程id

    #!/bin/sh

    while true;

    do

    count=ps -ef|grep 进程名|grep -v grep

    if [ "$?" != "0" ];then

    echo ">>>>start run it"

    启动进程命令

    $new_pid=pgrep -f 进程名

    echo ">>>>new pid $(new_pid)”

    fi

    sleep 5

    done

    展开全文
  • 以控制 python自动重启的shell脚本为例: cd Desktop vim run.sh #新建名为run的shell脚本 写入(此处以名为run的Python脚本为例) #!/bin/bash while [ 1 ];do python run.py done chmod 777 run.sh #设置shell...
  • python重启程序 重新运行脚本

    千次阅读 2018-03-13 16:28:00
    #重启程序 def restart_program(): python = sys.executable os.execl(python, python, * sys.argv) 定义一个重启函数 #主程序 print('restart...') restart_program() 转载于:...
    #重启程序
    def restart_program():
      python = sys.executable
      os.execl(python, python, * sys.argv)

    定义一个重启函数

    #主程序
    print('restart...')
                restart_program()

     

    转载于:https://www.cnblogs.com/mrfri/p/8558306.html

    展开全文
  • python重启windows services脚本

    千次阅读 2018-04-21 16:45:07
    通过简单的python脚本配合windows的定时执行任务实现定时重启windows services功能。一下以SQL Server (MSSQLSERVER)服务为例: 代码块 代码块语法遵循标准python2.7代码,如下: #!/usr/bin/python # -*- ...
  • nohup python /home/Service.py >/dev/null 2>&1 & else kill -9 ${old_pid} mid_pid=$(ps ax|grep Service.py|grep -v grep|awk '{print $1}' ) if [ - z ${mid_pid} ];then echo "Process Close Success !...
  • 一、Python开机自动运行 ...最后重启Linux,脚本就能自动运行并打印日志了。 二、让Python脚本定时启动 用root权限编辑以下文件 sudo vim /etc/crontab 在文件末尾添加以下命令 2 * * * * root /usr/bi
  • 主要介绍了python实现自动重启本程序的方法,涉及Python进程操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 如何重新启动脚本

    2021-01-14 03:53:30
    from Tkinter import * import Tkinter as tk import tkMessageBox import time import re import string from random import randint ...在 一切都运行顺利,除了我不明白如何让脚本重新启动时,他们在你赢窗口?在
  • 本文将介绍ubuntu系统下如何定时执行shell脚本python脚本,ubuntu系统有一个定时任务的管理器crontab,我们只需要编辑定时任务,然后重启定时任务服务就好了。 crontab 编辑定时任务 crontab -e 参数定义: -u...
  • 1.系统是windows10 ...3.经常出问题,我想在出问题时,脚本重启, 就是这样 异常太多,不能一一处理 if __name__ == '__main__': 这里放的是读取数据库信息, 需要把读取数据库放在main()下面吗
  • 但是,我尝试执行类似于子进程是Python脚本的东西,daemon.py创建了一个在后台运行的分叉子进程:#!/bin/bashPYTHON=/usr/bin/python2.6function myprocess {$PYTHON daemon.py start}NOW=$(date +"%b-%d-%y")u...
  • python重启程序

    2020-11-30 06:30:42
    广告关闭腾讯云11.11云上盛惠 ,精选热门产品...# 重启程序 def restart_program():print(重启。。。。。) python = sys.executableos.execl(python, python, * sys.argv)...usrbinpython#coding=utf-8import time...
  • python 脚本实现定时重启Linux 系统

    千次阅读 2019-02-21 19:28:00
    内容如下 .../usr/bin/env python from os import system from time import sleep sleep(60) system('echo"这是服务器用户密码"|reboot') ··· 把写好的脚本copy 到开启动下面 ··· sudo ...
  • 团队中有一大部分的监控任务都是自己来做的,这其中包括了很多脚本,主要是Python脚本。但是有时由于不可预料的原因,Python会异常终止,因此编写一个自动检测Python脚本是否异常终止的脚本,当异常终止时,重新启动...
  • Python脚本监测.py脚本的执行状态,并实现中断重启。#!/usr/bin/python#-*-coding:utf-8-*-importsubprocess,time,sysTIME=10#程序状态检测间隔(单位:分钟)CMD="get_bjipku.py"#需要执行程序的绝对路径,支持jar....
  • 脚本服务化目的:python 在 ...这个时候我们可以把python脚本服务化,服务器重启后,脚本就会自动运行。解决服务器维护后需要手动运行python脚本。实现方法:1,给编写好的python脚本开头加上#!/usr/bin/python2,...
  • 思路:通过adb reboot命令来控制android手机自动重启 #!/usr/bin/env python # -*- coding: utf-8 -*- import os import time class Reboot(): def __init__(self,count): self.count = count def reboot(self)...
  • python 自动重启本程序

    2021-03-06 22:24:24
    /usr/local/bin/python#-*- coding: UTF-8 -*-#####################################################################import os,time#def close():# print "程序重启!!!!"# print time.strftime('%Y.%m.%d-%H....
  • 一​项​数​量​达​1​0​0​0​0​多​条​的​I​P​地​址​归​属​地​查​询​任​务​催​生​了​W​i​n​d​o​w​s​下​实​现​P​y​t​h​o​n​出​错​后​重​启​且​定​时​监​视​重​启​...
  • Python自动重启电脑

    2020-12-06 08:45:25
    你好我已经写了一个.pyw脚本来自动重新启动我的电脑,...真的不知道哪里这个问题在于所以这是我的代码Python自动重启电脑import osimport datetimefrom ctypes import Structure, windll, c_uint, sizeof, byref#Sc...
  • Python运维中常用的几十个Python运维脚本本文由马哥教育Python自动化实战班4期学员推荐,转载自互联网,作者为mark,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付出。file是一个类,使用...
  • 我们经常需要在后台运行一些python...所以我们写一个shell脚本来控制 python挂了之后 自动重启:shell脚本如下:非常简单:然后我们使用该shell脚本启动python程序:启动之后:我们来测试一下:在后台kill -9 杀掉py...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,618
精华内容 22,647
关键字:

python重启脚本

python 订阅