用python写了个定时抓取代理IP的任务,现在如何查看该任务是否在后台运行呢?

恒少Jacky


这样的问题缺少关键条件:操作系统!


if 满足以下条件,你使用这个命令

前提条件是:

  1. Linux操作系统

  2. crontab定时任务

  3. python为命令行执行的

    .py

    文件

那么你只需输入

ps aux | grep "python" | grep -v "grep"

就能列出后台是否有正在执行的 python 脚本。

如果有,那么说明脚本正在执行,还没有完成;

如果没有,要么是脚本执行结束了,要么是异常退出了。

需要你在脚本内做好日志信息收集。


else:不满足上述条件的其他情况

假设题主是在 windows 下,添加了定时任务。也就是下图这里

然后设置了用户,时间触发器,还有运行的命令,如下python文件

最终配置结果长这样

在任务列表内,可以看到你的这一条。

上面是前提。


etc. 你能监控脚本运行与否的方法

定时任务运行成功与否,系统会记录日志。

在 Linux 存储在 /var/log/

cron.log

文件内。

在 Winodws 则是事件查看器报告的异常。

你应该怎么做?

在脚本内,手动 log 做好日志信息输出,并归档到日志文件内,方便调试查找。

windows 下怎么看进程是否执行完成呢?

其实大致相同,打开命令行界面,输入 tasklist,大致如下图:

该指令支持筛选条件,可以输入如下指令:

tasklist /fi "imagename eq python*"

运行结果如下:

列出所有python的进程,但是这个指令无法帮你定位到哪个PID是你的脚本任务。不如Linux方便。


结语

两种操作系统平台的方法都有了,用指令试一下吧。

注意,自己写的定时任务脚本程序,一定要手动收集日志。

系统不可能帮你把什么都办了!


我是@程序员小助手,持续分享编程与程序员成长相关的内容,欢迎关注~~

程序员小助手


可以用查看进程的命令看,比如ps -ef,也可以让该程序每次运行的时候写入日志文件


分享到:


相關文章: