




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一季度工作报告XXXXXX公司名称LOGO站长之家PPT模板树莓派应用开发第十章计划任务和开机启动项10.1cron配置计划任务10.2systemd设置开机启动项
cron配置计划任务cron是Linux系统的一个配置定期任务的工具,用于定期或者以一定的时间间隔执行一些命令或者脚本,可以在无需人工干预的情况下运行任务,可执行的任务范围很广泛。cron在系统中有一个运行着的守护进程,在系统运行时,守护进程会一直在后台运行,并对特定事件做出响应,当系统时间符合某一条规划记录的执行时间时,守护进程就会执行对应的任务。可以设置cron为开机自动启动或者不启动。cron启动后会读取它的所有配置文件,然后cron会根据命令和执行时间来按时来调用度工作任务。cron服务提供crontab命令来设定cron服务。crontab命令用于编辑cron计划任务列表,编辑操作是基于每个用户的,每一个用户都拥有自己的crontab。crontab命令从标准输入设备读取指令,并将指令存放于/etc/crontab文件中,以供后期读取和执行。通常,cron在后台运行,crontab储存的指令被守护进程激活,每一分钟检查是否有预定的任务需要执行。
cron配置计划任务树莓派也支持使用cron配置计划任务。树莓派默认系统下cron启动、重启、停止、查询状态、重新载入配置的命令:sudoservicecronstart#启动sudoservicecronrestart#重启sudoservicecronstop#停止sudoservicecronstatus#查询状态sudoservicecronreload#重新载入配置树莓派默认系统下设置crontab定时任务为开机启动或者不启动的命令:sudosystemctlis-enabledcron.service#查看是否为开机自启动sudosystemctlenablecron.service#设置服务为开启启动sudosystemctldisablecron.service#关闭服务开机启动在树莓派配置计划任务的时候,确保cron服务已经设置为开机启动,便于使用cron服务。
cron配置计划任务在/etc目录下的crontab文件中,可以查看cron定时任务的设置规则。使用sudonano/etc/crontab命令打开crontab文件后,会看到文件里保存有cron定时任务的设置规则
cron配置计划任务首先进入并编辑crontab文件,进行编辑crontable的操作:sudocrontab-e首次运行命令时会提示选择一个编辑器,如果不知道选哪个编辑器就直接回车选择nano编辑器
cron配置计划任务在任务计划表中,每一行作为一项计划任务,每一项计划任务的内容都包含六个部分:星期中的哪一天,年份中的哪一月,月份中的哪一天,小时,分钟,后面跟着要定时执行的命令,使用空格作为分割符。以#开始的行是注释。在数字部分,除了使用数字外,还可以使用*来表示不限范围。计划任务的具体的格式:格式中星期dow的取值范围是0-7,其中的1到6分别表示星期一到星期六;7和0都代表星期天;除了使用数字,还可以使用星期的英文缩写,数字和英文缩写的对应关系为:0-Sun,1-Mon,2-Tue,3-Wed,4-Thu,5-Fri,6-Sat,7-Sun。mhdommondow
command┬┬┬┬┬
要执行的指令││││└───星期(取值范围:0-7)│││└─────月(取值范围:1-12)││└───────日(取值范围:1-31)│└─────────小时(取值范围:0-23)└──────────分钟(取值范围:0-59)
cron配置计划任务每个与时间有关的配置表达式可以有以下几种组合配置方式:"-":为从某个时候到某个时候要执行command任务。例如:如果dow配置为1-3,则表示从周一到周三要执行command任务"*":为每个时间单位都要执行。例如:如果m配置为*,则每分钟都要执行一次command任务;如果m配置为*/n,则每隔n分钟要执行一次command任务。"/":为每隔多少时间执行一次。例如:如果dom配置为*/3,则表示每隔3个月就要执行一次command任务;如果dom配置为5-10/3,则表示从5月到10月之间,每隔3个月执行一次command任务。
cron配置计划任务计划任务配置举例如下:#每天的2:09,3:09,4:09执行touch指令92-4***touch/tmp/temp.log#每天的2:09,12:09执行touch命令92,12***touch/tmp/temp.log#每天凌晨4点和中午12点30分对树莓派进行重启04***sudoreboot3012***sudoreboot#每天0点0分运行backup.sh脚本00***
/home/pi/backup.sh#在12月内,每天的早上6点到12点,每隔3个小时0分钟执行一次/usr/bin/backup0\6-12/3*12*/usr/bin/backup#在树莓派每次启动时都运行myscript.py命令,使用@reboot替代了日期和时间@rebootpython/home/pi/myscript.py#如果需要命令仅在后台运行,则可以加一个&符号:@rebootpython/home/pi/myscript.py&
systemd设置开机启动项systemd即为systemdaemon,是目前Linux系统上主要的系统守护进程管理工具,是开源软件,用于替换init系统,能够管理系统启动过程和系统服务。systemctl是systemd的主命令,用于管理系统及服务。systemd的开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替常用的SystemV与BSD风格init程序。
systemd设置开机启动项与多数发行版使用的SystemV风格init相比,systemd采用了以下新技术:(1)采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;(2)用Cgroups代替PID来追踪进程,因此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
systemd设置开机启动项Systemd提供的功能包括:支持并行化任务;同时采用socket式与D-Bus总线式激活服务;按需启动守护进程;利用Linux的cgroups监视进程;支持快照和系统恢复;维护挂载点和自动挂载点;各服务间基于依赖关系进行精密控制。支持SysV和LSB初始脚本,可以替代sysvinit。除此之外,还包括日志进程、控制基础系统配置,维护登陆用户列表以及系统账户、运行时目录和设置,可以运行容器和虚拟机,可以简单的管理网络配置、网络时间同步、日志转发和名称解析等。
systemd设置开机启动项systemd的新特性有:系统引导时实现服务并行启动;按需激活进程;系统状态快照;基于依赖关系定义服务控制逻辑。
systemd的关键特性:基于socket的激活机制:socket与程序分离;基于bus的激活机制;基于device的激活机制;基于Path的激活机制;系统快照:保存各unit的当前状态信息于持久存储设备中;向后兼容sysvinit脚本,存放在/etc/init.d/中。
systemd设置开机启动项systemd所管理的所有系统资源都称作Unit,通过systemd命令集可以方便的对这些Unit进行管理。unit由其相关配置文件进行标识、识别和配置;文件中主要包含了系统服务、监听的socket、保存的快照以及其它与init相关的信息。
systemd设置开机启动项unit的常见类型有:Serviceunit:文件扩展名为.service,用于定义系统服务;Targetunit:文件扩展名为.target,用于模拟实现“运行级别”;Deviceunit:文件扩展名为.device,用于定义内核识别的设备;Mountunit:文件扩展名为.mount,定义文件系统挂载点;Socketunit:文件扩展名为.socket,用于标识进程间通信用到的socket文件;Snapshotunit:文件扩展名为.snapshot,管理系统快照;Swapunit:文件扩展名为.swap,用于标识swap设备;Automountunit:文件扩展名为.automount,文件系统自动点设备;Pathunit:文件扩展名为.path,用于定义文件系统中的一文件或目录;
systemd设置开机启动项Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。systemctl的命令的用法是固定不变的:systemctl[command][unit](配置的应用名称)command可选项为:start:启动指定的unit,例如systemctlstartnginxstop:关闭指定的unit,例如systemctlstopnginxrestart:重启指定unit,例如systemctlrestartnginxreload:重载指定unit,例如systemctlreloadnginxenable:系统开机时自动启动指定unit,前提是配置文件中有相关配置,例如systemctlenablenginxdisable:开机时不自动运行指定unit,例如systemctldisablenginxstatus:查看指定unit当前运行状态,例如systemctlstatusnginx
systemd设置开机启动项systemctl还可以查看使用的服务,直接使用sudosystemctllist-unit-files命令可以看到配置单元列表,从列表中查看各个服务的启动与禁用情况,被启用enabled的单元显示为绿色,被禁用disabled的显示为红色。标记为static的单元不能直接启用,它们是其他单元所依赖的对象,不是由systemd启动的服务,systemctl无法与之通信。可以使用管道进行具体的选择。sudosystemctllist-unit-files--type=service|grepdocker
systemd设置开机启动项如果修改了某个服务的配置文件,就要使用sudosystemctldaemon-reload命令重新加载配置服务,然后使用sudosystemctlrestart命令重新启动,否则修改不会生效。例如修改了httpd.service服务的配置后要运行命令:sudosystemctldaemon-reloadsudosystemctlrestarthttpd.service
systemd设置开机启动项我们还可以使用systemctlcat命令来查看具体的配置单元的设置。例如使用如下命令:sudosystemctlcatsshd.service从sshd.service返回的信息可以看到sshd.service主要分为三个区块:(1)Unit区块:启动顺序和依赖关系;
Description:应用简单描述。
AfterBefore:定义启动关系,如果依赖的应用需要启动,那么本应用应该是排在他之前,还是之后。
Wants:表示服务之间存在"弱依赖"关系。
Requires:表示"强依赖"关系。Wants字段与Requires字段只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的。
systemd设置开机启动项(2)Service区块:启动行为;EnvironmentFile字段:指定当前服务的环境参数文件。ExecStart字段:定义启动进程时执行的命令。Type字段:定义启动类型。KillMode字段:定义Systemd如何停止服务。Restart字段:定义了RemainAfterExit字段:启动命令退出时,是否保持服务。应用的重启方式。RestartSec字段:表示Systemd重启服务之前,需要等待的秒数。
systemd设置开机启动项(3)Install区块:开机启动;WantedBy字段:表示该服务所在的Target。一般来说,常用的Target有两个:multi-user.target表示多用户命令行状态;graphical.target表示图形用户状态,它依赖于multi-user.target;一般情况下是配置multi-user.target为开机启动。
systemd设置开机启动项下面我们学习在树莓派上使用systemd来设置开机启动项,将命令或程序配置为开机启动时自动运行的服务。完成配置之后,就可以通过命令行来启动、停止、禁用这个服务。首先使用nano编辑器在/home/pi目录下新建一个main.py文件:sudonanomain.py在main.py文件中输入以下python代码:importosimportsocket【…….剩余代码请参考教材】
systemd设置开机启动项保存文件后退出,在LX终端里使用命令调试运行好:pythonmain.py正常情况下,运行结果:
systemd设置开机启动项然后创建服务。在树莓派上使用如下命令创建一个myscript.service文件:sudonanomyscript.service把以下配置项的内容编辑输入到文件里:[Unit]Description=MyserviceAfter=network.target
[Service]ExecStart=/usr/bin/python3-umain.pyWorkingDirectory=/home/piStandardOutput=inheritStandardError=inheritRestart=alwaysUser=pi
[Install]WantedB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《物流系统分析》课件 项目二任务四 掌握物流需求预测方法
- 2025年吉林b2从业资格证模拟考试题目
- 2025年济南货运从业资格证考试模拟考试答案大全
- 2025年泰州道路运输从业人员从业资格考试
- 2025年货运从业资格证模拟考试题库及答案详解
- 个人财产信托管理合同
- 2025年大同货车从业资格证考试试题
- 2025年钦州货运从业资格证科目一考试答案
- 设备采购说明文书与需求调研报告
- 2025年哈尔滨货运从业资格证模拟考试题及答案解析
- 《建筑施工塔式起重机安装、使用、拆卸安全技术规程》
- 介入呼吸病学
- 自建房培训课件甘肃
- 闽教版四年级下册劳动教案
- 间质性肺炎患者的护理健康评估
- 中小学必背飞花令诗词-(春、月、风、花、山、江、人、日、动物、颜色、数字)
- 【海信电器员工流失现状调查及其原因和完善策略10000字】
- 北师大版小学数学六年级下册全册一课一练课课练(含答案)
- 发扬体育精神展青春光彩
- 脚轮行走测试技术规范
- 《关于情商的》课件
评论
0/150
提交评论