系统:centos 7.3 由于之前写的一个小程序经常报错,尝试了很多种方法之后都不见效,只有隔 4-5 天左右重启一次程序才能暂时解决。因此就想写个脚本定时重启后台运行在 screen 中的程序。 参数说明: -x 恢复之前离线的screen作业。 -p 0 指定第一个(从0开始)window,一个screen里可以有几个window,这里只需要指定第一个,不然会在某些情况下不生效。 -X 执行一个指定的screen支持的command stuff 是-X的第一个参数,也是screen支持的一个command,意思是粘贴一个string “cmd” 是粘贴的string 内容 ‘n’ 是粘贴一个回车符进去,以此来执行screen里面的top命令
环境
语言:python 2.7.5
第三方包:APScheduler 3.6.3需求
用到的 screen 操作指令
# -*- coding: utf-8 -* import os # 要向会话中发送的指令 cmd,n 代表回车, cmd = "cd /usr/localn" # 要向会话中发送的指令 cmd,n 代表回车, 03 代表 ctrl+c, cmd2 = " 03n" os.system('screen -x -S txltongbu -p 0 -X stuff "cmd"') os.system('screen -x -S txltongbu -p 0 -X stuff "cmd2"')
-S <作业名称> 指定screen作业的名称。