进程的概念
进程:开始执行但是还没有结束的程序的实例
程序:包含可执行代码的文件
进程由程序产生,是一个运行着的、要占系统资源的程序,进程不等于程序。
进程分为:交互进程、批处理进程、守护进程。
进程的查看 ps命令
ps -u stu1 查看用户stu1的进程情况
ps -l -u stu1 以长格式查看用户stu1的进程情况
选项:
-A 显示系统中所有进程的信息,与-e具有相同的功能。
-a 显示所有用户的进程信息
-f 完整的显示进程的所有信息
-l 以长格式显示进程信息。
-r 只显示正在进行的进程
-u 显示面向用户的格式(用户名、cpu及内存使用情况等)
-x 显示所有非控制终端上的进程信息
-p 显示由进程ID指定的进程的信息
-t 显示指定终端上的进程的信息
查看各进程继承关系的命令:pstree
命令格式:pstree [选项] [pid|user]
选项说明:
-a:显示该进程的完整继承关系,如果是被内存置换出去的进程则会加上括号。
-c 如果有重复的进程名, 则分开列出 (默认值是会在前面加上 * )。
pstree -ac
pid|user:查看指定根进程(pid)或用户(user)所拥有的进程。
进程的终止 kill
kill [信号代码] pid
Killall [信号代码] 进程名
kill -9 pid号 强制终止
在远程终端上,使用tty命令 查看当前对应的终端
进程的调度
延迟性调试命令:at
功能:指定时间运行指定的程序
格式: at [-f 文件] [-m] 时间
-f : 指定存放计划执行命令的文件
-m : 作业结束后发送邮件给执行at命令的用户
时间:任务执行的时间 有相对时间和绝对时间
绝对表示法:MMDDYY或MM/DD/YYYY, today tomorrow
相对表示法: now+num+时间单位 ,其中时间单位可以是minutes、hours、days、wees
直接输入at 时间
也可以进入剪辑模式,退出编辑模式用ctrl + d
周期性调度命令 : crontab
crontab [-u] user { -e | -l | -r }
crontab -e 进入命令编辑模式,编辑计划任务列表
crontab -l 查看计划任务列表
crontab -r 删除任务列表
crontab -u 为指定用户设置计划任务
任务列表文件的格式: minute hour day month day_of_the_week run_command(命令,任务内容设置)
即:分钟 小时 天 月份 星期 (*表示不指定,表示每一天/每一年)
编辑完成后
:wq 保存并退出
举例1: 以root用户的身份设置一份计划任务列表:
每天7:50自动开启sshd服务,22:50关闭sshd服务
#crontab -e
50 7 * * * /bin/systemctl start sshd
50 22 * * * /bin/systemctl stop sshd
举例2:以root用户的身份设置一份计划任务列表,完成如下任务:
每隔五天清空一次FTP服务器公共目录“/var/ftp/pub”中的数据
每周六的7:30重新启动系统中的httpd服务
每周一、周三、周五的下午17:30,使用tar命令自动备份“/etc/httpd”目录。
#crontab -e
* * /5 * * /bin/rm-rf /var/ftp/pub/*
30 7 * * 6 /bin/systemctl restart httpd
30 17 * * 1,3,5 /bin/tar zcvf httpd.tar.gz /etc/httpd
/5表示每隔5天
*表示任意时间 /表示间隔的时间频率 ,表示多个不连续的时间点 -表示连续的时间段
举例3:为jerry用户设置计划任务,在每周日晚上的23.55将“/etc/passwd”文件的内容复制到主目录中,保存为“pwd.txt”文件
#crontab -e -u jerry
55 23 * * 7 /bin/cp /etc/passwd /home/jerry/pwd.txt
如果要再编辑 或加入新的计划 还是使用-e 选项