作者:mobiledu2502881303 | 来源:互联网 | 2023-08-04 08:11
本文主要分享【现在如何查看该任务是否在后台运行呢】,技术文章【【Ubuntu】python脚本后台运行避免中断并且管理后台运行脚本程序的生命周期以及python脚本定时运行】为【量化Mike】投稿,如
本文主要分享【现在如何查看该任务是否在后台运行呢】,技术文章【【Ubuntu】python脚本后台运行避免中断并且管理后台运行脚本程序的生命周期以及python脚本定时运行】为【量化Mike】投稿,如果你遇到Python Web开发相关问题,本文相关知识或能到你。
现在如何查看该任务是否在后台运行呢
文章目录 一、Bash命令行输入命令1、测试python脚本2、后台运行该python脚本 二、如何判断后台运行程序状态2.1 获取后台进程ID2.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、修改rsyslog2、去掉cron前面 # 注释符3、重启该日志rsyslog4、查看该定时日志 4.9 关闭该定时服务1、查看cron是否启动2、关闭cron定时任务3、关闭定时任务缺陷
一、Bash命令行输入命令
nohup python -u xxx.py > result.out 2>&1 &
1、测试python脚本
test.py
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 /*查看crond状态*/
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文件注释掉任务行,再重启文件。
本文《【Ubuntu】python脚本后台运行避免中断并且管理后台运行脚本程序的生命周期以及python脚本定时运行》版权归量化Mike所有,引用【Ubuntu】python脚本后台运行避免中断并且管理后台运行脚本程序的生命周期以及python脚本定时运行需遵循CC 4.0 BY-SA版权协议。