正常情况下,一个python程序如果希望实现一直运行,不出错不奔溃是很难的,即使编译为可持续文件也是一样

幸运的是很多需求并不是需要24小时不间断运行,而是每隔一段时间运行一次即可

Linux系统自带的cron就为我们实现了这种可能:

输入

crontab -e

这时候就会展示已经设置好的任务,如果你之前没有设置过,那这里就是空的

设置你要运行的任务

* * * * * your-task

这里的参数说明如下:

在设置后,系统就会自动运行这个任务,但是有些童鞋可能会遇到这样的错误:

No module named '****'

而你直接在终端输入python,然后import这个模块,却又是Ok的,

这个问题困扰了我不少时间,最后发现可能的原因是系统中存在多个python版本

而使用cron调用的时候恰好不是你想要的那个,解决的办法也很简单

把详细的python路径写全就行了

* * * * * /root/anaconda3/bin/python /root/btc.py

注意前面的红字部分路径就是你需要的python版本的实际路径

如果需要把任务日志输出到指定的文件,可以这样:

* * * * * /root/anaconda3/bin/python /root/btc.py >> /root/error.txt

下面是一些关于cron的使用示例

* * * * * XXX 每分钟运行。
* * * * XXX 每小时运行。
* * * XXX 每天零点运行。
, * * * XXX在每天的9AM和6PM运行。
- * * * XXX 在9AM到6PM的每个小时运行。
- * * - XXX 周一到周五的9AM到6PM每小时运行。
*/ * * * * XXX 每10分钟运行。

cron的使用场景非常多,例如:

定期备份你的文件,定期备份数据库并发送到你的邮箱,定期XXX

基本上跟你的编程语言一结合,定时定期类的任务都能完成

Linux下使用cron让Python程序持久化运行的更多相关文章

  1. linux下命令行执行Python程序提示no moudle,路径问题

    在ide中执行python程序,已经设置好项目路径中. 但是在cmd中执行程序,所在路径是python的搜索路径,如果涉及到import引用就会报类似ImportError: No module na ...

  2. 如何用javac 和java 编译运行整个Java工程 (转载)【转】在Linux下编译与执行Java程序

    如何用javac 和java 编译运行整个Java工程 (转载)  http://blog.csdn.net/huagong_adu/article/details/6929817 [转]在Linux ...

  3. linux 下检查java jar包 程序是否正常 shell

    linux 下检查java jar包 程序是否正常 shell http://injavawetrust.iteye.com BATCH_SERVER="batch.jar" NR ...

  4. Linux下如何让jar包程序在后台一直执行

    Linux下如何让Jar包程序在后台一直执行 shell命令 nohup java -jar xxx.jar & &:让程序后台执行. nohub:让程序控制台输出转移到nohub.o ...

  5. 在Linux下,如何分析一个程序达到性能瓶颈的原因

    0.在Linux下,如何分析一个程序达到性能瓶颈的原因,请分别从CPU.内存.IO.网络的角度判断是谁导致的瓶颈?注意现在的机器CPU是多核 1.用sar -n DEV 1 10 2.用iotop命令 ...

  6. Linux下使用vim编辑C程序

    这几天在系统能力班自学linux,加上最近大数据课上开始使用linux,我在这里总结一下,linux下使用vim编辑c程序的一些问题. 大数据课上是直接使用micro来编辑的,我这里只是简单的说明一下 ...

  7. 在Linux下使用linuxdeployqt发布Qt程序

    一.简介 linuxdeployqt 是Linux下的qt打包工具,可以将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的文件夹中. 二.安装linuxdeployqt 去github ...

  8. Linux下通过.desktop 文件创建桌面程序图标及文件编写方式(Desktop Entry文件概述)

    Linux下通过.desktop 文件创建桌面程序图标及文件编写方式 1.Desktop Entry文件概述:在 Windows 平台上,用户可以通过点击位于桌面或菜单上的快捷方式轻松打开目标应用程序 ...

  9. 谈谈 Python 程序的运行原理

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,谈谈 Python 程序的运行原理 这篇文章准确说是『Python 源码剖析』的 ...

随机推荐

  1. 汇编 REPNE/REPNZ 指令,SCASB 指令

    知识点: REPNE/REPNZ 指令 SCASB 指令 一.SCASB 指令 cmp byte ptr [edi],al //对标志位的影响相当于sub指令 //同时还会修改寄存器EDI的值:如 ...

  2. 【ORACLE】oracle打补丁

    -- 备份旧的opatch cd $ORACLE_HOME/ mv OPatch  OPatch_20180323_old -- 上传补丁工具和补丁包到oraclehome目录下,解压 unzip p ...

  3. Python_Xlrd&Xlwt

    import xlrd # \U 开始的字符被编译器认为是八进制 解决方法 r objWB = xlrd.open_workbook(r'C:\Users\IBM\Desktop\S1\7月下旬入库表 ...

  4. 机器学习初入门03 - Matplotlib

    这一部分很简单,所以以代码的形式给出,在实际学习开发中,Matplotlib最好只把它当成一个画图的工具来用,没有必要深究其实现原理是什么. 一.折线图的绘制 import pandas as pd ...

  5. 2-Fifteenth Scrum Meeting-20151215

    任务安排 成员 今日完成 明日任务 闫昊 修复bug  写完学习进度记录的数据库操作 唐彬 编写与服务器交互的代码  编写与服务器交互的代码 史烨轩 获取视频url   余帆 修复bug  本地路径的 ...

  6. linux第四章笔记

    第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间.进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统. 最大限度利用处理器时间的原则:只要有可以执行 ...

  7. 03-java学习-基本数据类型-运算符-键盘接收用户输入

    java的八大基本数据类型: 类型转换的基本原则: java整数的默认类型是int,小数的默认类型是double 运算符: 算术运算符.连接.赋值.关系.逻辑.三目运算符等…… 键盘接收用户输入: j ...

  8. WPF和js交互 WebBrowser数据交互

    this.webBrowser1.ObjectForScripting = new OprateBasic(); this.webBrowser1.Source = new Uri(Environme ...

  9. An ''all'' model group must appear in a particle with...问题解决记录

    场景: 最近在一个新项目的依赖包调整过程中,引入包之后,发现项目启动报错,一直启动不成功,经过查询和排查,发现是包对xml解析冲突的问题: 报错信息: [WARNING] Nested in org. ...

  10. Python爬虫:抓取新浪新闻数据

    案例一 抓取对象: 新浪国内新闻(http://news.sina.com.cn/china/),该列表中的标题名称.时间.链接. 完整代码: from bs4 import BeautifulSou ...