Ubuntu下定时重启程序


前言

  在项目中,用Frp进行了内网穿透,但是由于网络存在波动的可能,而这样也可能会导致Frp中断,所以就想着通过定时重启frp程序来规避这种情况,如下:


一、依赖项安装

这里所需要的python依赖项相对较少,只需要安装下schedule即可(这个包很小,无需镜像也会很快装完),这个是定时任务时会用到的,直接在运行的python环境下执行以下命令:

pip install schedule

二、重启任务

这一部分我们将贴出代码,大致逻辑是先检测到我们要重启的程序id,然后kill掉之后,进行重新启动,代码如下:

import os,sys,schedule
import subprocess,time
def restart_frp():
    child =subprocess.Popen(["pgrep","-f","xxx"],stdout=subprocess.PIPE,)
    pid=child.stdout.read().decode("utf-8").strip()
    #print(pid)
    if pid!="":
        os.system("kill -9 "+pid)
    child2=subprocess.Popen("xxx",stdout=subprocess.PIPE,shell=True)
    print(time.strftime("%Y-%m-%d %H:%M",time.localtime()))
if __name__ == '__main__':
    restart_frp()
    schedule.every().hour.do(restart_frp)
    while True:
        schedule.run_pending()

其中的xxx均为你要操作的程序名称

三、bug记录

自己在运行中若遇到如下错误:在这里插入图片描述
则执行如下操作:
第一步,执行命令

ls -l /bin/sh

若显示结果为:/bin/sh -> dash,那就执行第二步:

sudo  dpkg-reconfigure dash (出现窗口选择no)

第三步,再次执行命令:

ls -l /bin/sh

显示为 /bin/sh -> bash后,重新运行程序即可

参考链接:bug解决


总结

以上就是这篇文章的全部内容,如有不对,还望指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值