栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Ubuntu】python脚本后台运行避免中断并且管理后台运行脚本程序的生命周期以及python脚本定时运行

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Ubuntu】python脚本后台运行避免中断并且管理后台运行脚本程序的生命周期以及python脚本定时运行

文章目录
    • 一、Bash命令行输入命令
      • 1、测试python脚本
      • 2、后台运行该python脚本
    • 二、如何判断后台运行程序状态
      • 2.1 获取后台进程ID
      • 2.2 查看进程
      • 2.3 查看运行结果
    • 三、关闭后台运行程序
    • 四、Ubuntu定时运行指定脚本程序
      • 4.1 crontab文件内容理解
      • 4.2 cron定时服务相关指令
      • 4.3 测试python脚本程序
      • 4.4 指定时间运行
      • 4.5 指定时间运行测试脚本
      • 4.6 启动cron定时服务
      • 4.7 查看cron服务状态(判断命令到底是否定时执行)
      • 4.8 查看定时任务打印结果
        • 1、修改rsyslog
        • 2、去掉cron前面 # 注释符
        • 3、重启该日志rsyslog
        • 4、查看该定时日志
      • 4.9 关闭该定时服务
        • 1、查看cron是否启动
        • 2、关闭cron定时任务
        • 3、关闭定时任务缺陷

一、Bash命令行输入命令
nohup python -u xxx.py > result.out 2>&1 &
1、测试python脚本
test.py

#utf-8
import time

i = 1
while True:
    print(i)
    time.sleep(1)
    i += 1
2、后台运行该python脚本

输入bash命令:

nohup python -u test.py > result.out 2>&1 &

解释命令行参数

二、如何判断后台运行程序状态 2.1 获取后台进程ID

2.2 查看进程

输入bash命令:

ps 查看所有进程
ps -ef | grep 1465554 查看指定PID进程



这里的第二个进程PID 1468263 并不是后台运行程序产生的,而是运行管道符命令产生的。

2.3 查看运行结果

输入bash命令:

tail -f result.out

三、关闭后台运行程序

知道了进程的PID后,可以直接杀掉进程。
输入bash命令:

kill 进程PID

四、Ubuntu定时运行指定脚本程序

Linux系统自带有定时执行工具——cron,可以在无需人工干预情况下运行作业。
该工具程序所在位置:/etc/crontab。
crontab这个文件里存放的就是cron要执行的命令,以及定时执行的时间,我们需要修改编辑它。

4.1 crontab文件内容理解

进入根目录下配置文件夹etc,编辑crontab文件。

这里我们添加指定运行时间以及指定脚本的命令在下方即可,我们看下语法:

minute   hour   day   month   week  user  command     # 分 时 日 月 周 用户 命令

minute: 表示分钟,可以是从 0 到 59 之间的任何整数。
hour:表示小时,可以是从 0 到 23 之间的任何整数。
day:表示日期,可以是从 1 到 31 之间的任何整数。
month:表示月份,可以是从 1 到 12 之间的任何整数。
week:表示星期几,可以是从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日。
user:linux的用户身份,例如root,或者其他用户
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

在crontab文件中添加定时任务的命令中时间字段除了指定数值外还可以使用通用符号:

星号(*):代表所有可能的值,例如 month 字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在 minute 字段,表示每十分钟执行一次。
4.2 cron定时服务相关指令

cron 服务的启动与停止,命令如下:

service cron start  
service cron stop 
service cron restart 
service cron reload 
service cron status  
4.3 测试python脚本程序

测试使用的python脚本

wuguanzheng-test.py

print('这是定时测试脚本~~~~~~~~~~~~~~~~~~~')

4.4 指定时间运行

添加指定时间脚本:
root用户每个月15号的9点25分钟运行指定的脚本。

minute   hour   day   month   week   user    command     # 分 时 日 月 周 用户 命令
25       9      15    *       *     用户名  /用户目录下脚本程序
4.5 指定时间运行测试脚本


添加指定时间脚本:
root用户每月每天每周每小时每分钟运行指定的python脚本。

minute   hour   day   month   week   user    command     # 分 时 日 月 周 用户 命令
*        *      *     *       *       q       python  /home/q/data-api/test-cron.py

将该命令添加到 /etc/crontab 文件中,进行修改出现警告:

表示该文件只可读不可修改,因为没有权限,我们需要修改下该文件的权限,或者使用root账户登录进行修改。
这里我们采用root账户进行修改文件 ( 不采用修改文件权限是该文件也属于敏感文件不需要所有人都操作)

然后修改crontab文件,添加运行命令:

4.6 启动cron定时服务
service cron start  
4.7 查看cron服务状态(判断命令到底是否定时执行)
service cron status


4.8 查看定时任务打印结果

为了验证定时任务是否正常执行,从crontab的日志里找原因。
切换到root账户下。

1、修改rsyslog
vim /etc/rsyslog.d/50-default.conf

2、去掉cron前面 # 注释符

3、重启该日志rsyslog
service rsyslog  restart
4、查看该定时日志
tail -f /var/log/cron.log

4.9 关闭该定时服务 1、查看cron是否启动

2、关闭cron定时任务
service cron stop 


关闭服务后日志内容未再更新。

3、关闭定时任务缺陷

该方法会关闭所有定时任务,建议直接修改crontab文件注释掉任务行,再重启文件。

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015008.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号