linux中调度命令 linux调度命令有哪些( 二 )


以上便是关于“如何启动或终止进程?常用的进程调度命令有哪些?”的相关介绍 。想要成为一名优秀的Linux运维工程师,需要掌握更多的Linux知识 。
Linux下定时任务(系统任务调度、用户任务调度)crontab使用详解 crond是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,在CentOS Linux release 7.2.1511中默认是开机启动的 , 大家可以使用命令:systemctl status crond进行查看 。crond进程定期(每分钟)检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务 。用户在cron表
(也被称为crontab文件)指定了定时任务,crontab也就是我们常见的定时任务设置命令 。Linux下的任务调度分为两类,系统任务调度和用户任务调度 。
系统任务调度 :系统周期性所要执行的工作 , 比如写缓存数据到硬盘、日志清理等 。/etc/crontab文件就是系统任务调度的配置文件 。
用户任务调度 :用户定期要执行的工作 , 比如用户数据备份、定时邮件提醒等 。用户可以使用 crontab 工具来定制自己的计划任务 。所有用户定义的crontab文件都被保存在/var/spool/cron目录中 。其文件名与用户名一致,使用者权限文件如下:
通过以上帮助信息 , 我们可以知道crond是执行任务计划的一个守护进程 。在使用crontab之前我们可以根据帮助信息来设置相关选项,一般情况下我们都使用默认值 。
1.建立演示账号crontab 。
2.星号(*)使用举例 。
以上例子中完整演示了crontab从建立到执行的过程 。“5 0 * * *echo "GeekDevOps"”表示在每天00:05执行命令:echo "GeekDevOps" 。后面的星号表示只要前面条件满足都执行 。例子中的-u选项指定了用户:crontab,-l选项列举了相关用户的用户任务调度 , 不指定用户则默认为root 。执行结果默认写入到用户mail目录下的相关文件中 。
3.逗号(,)的使用举例 。
现在我们已经把用户切换到crontab下,因此无需额外指定-u选项相关内容 。“3 2,6,8 * * *”表示每天的02:03:00、06:03:00、08:03:00分别执行一次命令:ls /usr/local 。
4.减号(-)的使用举例 。
例子中的“0 2-6 * * 6 df -h /”表示用户crontab在每周六的02:00、03:00、04:00、05:00、06:00执行命令:df -h /。
5.斜杠(/)的使用举例 。
例子中表示每隔2分钟执行一次命令:echo "GeekDevOps"/root/GeekDevOps.txt 。
6.crontab的使用非常简单,很容易理解,只要在取值范围内设置执行的值基本是没有问题的 。现在我们要删除已经设置的这些定时任务 。
例子中,选项-r表示删除所有定时任务 。选项-i表示在删除前进行再次确定,输入y或者Y才能真正删除 。
7.备份我们设置的用户任务调度配置文件 。
8.系统任务调度的使用举例 。
系统任务调度与用户任务调度不一样,需要直接在/etc/crontab里面配置,如果需要指定用户,还需要在执行命令前指定用户名 。通过crontab -l 命令是查看不到系统任务调度任务的 。
Linux系统的进程调度Linux进程调度
1.调度方式
Linux系统的调度方式基本上采用“抢占式优先级”方式,当进程在用户模式下运行时 , 不管它是否自愿,核心在一定条件下(如该进程的时间片用完或等待I/O)可以暂时中止其运行,而调度其他进程运行 。一旦进程切换到内核模式下运行时,就不受以上限制 , 而一直运行下去,仅在重新回到用户模式之前才会发生进程调度 。
Linux系统中的调度基本上继承linux中调度命令了UNIX系统的以优先级为基础的调度 。也就是说,核心为系统中每个进程计算出一个优先级,该优先级反映linux中调度命令了一个进程获得CPU使用权的资格,即高优先级的进程优先得到运行 。核心从进程就绪队列中挑选一个优先级最高的进程,为其分配一个CPU时间片 , 令其投入运行 。在运行过程中,当前进程的优先级随时间递减,这样就实现了“负反馈”作用,即经过一段时间之后,原来级别较低的进程就相对“提升”了级别,从而有机会得到运行 。当所有进程的优先级都变为0(最低)时 , 就重新计算一次所有进程的优先级 。

推荐阅读