28 Crontab 开机自动运行脚本

来自Waveshare Wiki
跳转至: 导航搜索

Crontab 开机自动运行脚本

在之前的教程中,我们简单介绍了如果关闭产品主程序的自动运行,所以用的方法就是在 Crontab 文件中注释掉运行产品主程序的命令,在本章教程中,你将会了解到更多有关 Crontab 的信息,以及为什么我们采用 Crontab 而不采用 Services 来实现开机自动运行。

Crontab 是 Linux 系统中用于周期性执行任务的工具。通过 Crontab,用户可以设置在特定的时间点、日期或者周期性地执行特定的命令或脚本。我们这里介绍 Crontab 的一些重要概念和用法:

Crontab 文件

Crontab 文件是存储周期性任务调度信息的文件。每个用户都有自己的 Crontab 文件,用于存储他们自己的任务调度信息。Crontab 文件通常存储在 /var/spool/cron 目录中,以用户的用户名命名。

Crontab 格式

Crontab 文件中的每一行代表一个任务调度。每行由五个字段组成,分别表示分钟、小时、日期、月份和星期。你可以使用 # 号来注释掉某一行来关闭对应的任务调度。

使用方法

要编辑 Crontab 文件,可以使用 crontab -e 命令。此命令会打开一个文本编辑器,允许用户编辑自己的 Crontab 文件。编辑完成后,保存并退出编辑器,Crontab 文件就会更新。

常用选项:

  • -e:编辑用户的 Crontab 文件。
  • -l:列出用户的 Crontab 文件内容。
  • -r:删除用户的 Crontab 文件。
  • -u:指定要操作的用户。

与 services 的对比

相比之下,使用 services 实现开机自动运行通常是通过在系统启动时执行一系列预定义的服务或脚本来实现的。这些服务可以在 /etc/init.d/ 目录下找到,并通过系统的服务管理工具(如 systemctl)来启动、停止或重启。

Crontab 的优点:

  • 灵活性:可以非常灵活地设置任务的执行时间,包括分钟、小时、日期、月份和星期等。
  • 简单易用:Crontab 的配置相对简单,对于一些简单的周期性任务调度非常方便。
  • 用户独立性:每个用户都有自己的 Crontab 文件,可以管理自己的任务,不会影响其他用户。

services 的优点:

  • 可靠性:通过 services 实现的开机自动运行通常更稳定可靠,因为它们是系统级别的服务,会在系统启动时自动加载和运行。
  • 管理性:系统管理员可以更轻松地管理服务,包括启动、停止、重启和查看状态等操作。
  • 控制权限:对于一些需要特权执行的任务,使用 services 可以更好地控制权限,确保安全性。

本产品中 Crontab 的特殊优势

更低的资源占用,经过我们的测试对比,同样的python脚本使用 Crontab 的CPU资源占用是 services 的 1/4,对于复杂度比较高的机器人主程序这样的应用而言,使用 Crontab 来实现开机自动运行是更优的选择。ervices 则更适用于需要在系统启动时执行的重要服务或应用程序。