进程的概念
Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性:
- 交互进程:由shell启动的进程。
- 批处理进程:这种进程和终端没有联系,是一个进程序列。
- 守护进程:在后台持续运行的进程。
Linux中的进程其属性主要有:
- PID:进程唯一的数值,用来区分进程。
- PPID:父进程和父进程的ID
- UID:启动进程的用户ID
- GID:所归属的组
- 进程状态:状态分为运行R、休眠S、僵尸Z
- 进程执行的优先级
- 进程所连接的终端名
- 进程资源占用(内存、CPU占用量)
进程的启动
一、手动启动进程:
用户输入将要运行的程序名字,执行该程序,就是手工启动进程。手工启动进程又分为前台启动和后台启动。
前台启动:
一般地,用户键入一个命令,就已经启动了一个前台的进程。
- ctrl+c 或 kill:中断前台进程
后台启动:
对于非常耗时进程,可以让进程在后台运行。从后台启动进程其实就是在命令结尾加上一个“&”号 。后台启动进程后,Shell终端不会等待该命令执行完毕才能执行下一个命令,而是提示用户该进程的进程号,然后出现Shell提示符,用户可以继续在终端上操作。
- jobs:显示所有后台进程
- ctrl+z:前台->后台,并暂停
- fg :将后台进程调到前台执行
- bg :将一个后台暂停的进程,继续执行
二、 调度启动进程
用户设置好启动的条件,待满足条件时出发某个程序自动启动,就是调度启动进程
at 命令
作用: 用于在指定时间执行指定的命令序列,但是它只是执行一次命令序列,而不是重复执行
语法: at [选项] Time 文件名称
常用选项:
-q:使用指定的队列来储存
-m:即使程序/指令执行完成后没有输出结果,也要用邮件告知使用者
-f file:读入预先写好的命令文件脚本文件
-l:列出所有的作业
-d:删除作业
-v:列出所有已经完成但尚未删除的作业
时间格式:
- 具体时间日期 hh:mm MM/DD/YY
23:59 03/15/2017
- 模糊词语格式 hh:mm midnight tomorrow am…
at 17:20 tomorrow
- 相对计时法 时间点 + 多少 + 时间单位
now + 2 minutes
5pm + 3 days
crontab 命令
对用户来说,只需要关注自己的crontab文件的撰写,不需干涉crond进程的执行。
作用: 用于在指定时间执行指定的命令序列,且重复执行具有周期性。用于直接创建或者直接修改 crontab 文件
语法: crontab [选项]
常用选项:
-e:执行文字编辑器来设定时程表,内定的文字编辑器是 vi
-r:删除目前的时程表
-l:列出目前的时程表
-u user:只有root用户可以指定他人的时间表
crontab源文件格式:
f1 f2 f3 f4 f5 program
其中,f1: 分钟(00-59),f2:小时(00-24),f3: 一个月份中的第几天(01-31),f4:月份(01-12),f5: 一个星期中的第几天(0-6),program:要执行的程序
- 每月每天12点执行一次echo hello
0 12 * * * echo hello
- 在12月内,每天早上6点到12点,每隔20分钟执行一次/usr/bin/backup
*/20 6-12 * 12 * /usr/bin/backup
- 每月每天的午夜0点20分,2点20分,4点20分…显示当前时间
20 0-23/2 * * * date