进程的状态
进程被称作任务,有4种状态
运行态 运行或准备运行等待态 可中断(TASK_ITERRUPTIBLE) 不可中断(TASK_UNITERRUPTIBLE)停止态(TASK_STOPPED)僵死态(TASK_ZOMBIE)复制代码
常用进程管理命令
# ps 查看静态的进程统计信息ps [选项] 常用选项: a:显示当前终端下的所有进程信息 u:使用以用户为主的格式输出进程信息 x:显示当前用户在所有终端下的进程信息 root@computer: ~$ ps -lF S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD0 S 1000 10 9 3 80 0 - 4199 - tty1 00:00:00 bash0 R 1000 22 10 0 80 0 - 4271 - tty1 00:00:00 ps# 各个字段的意义S: 进程状态 R: 进行 S: 休眠 T: 暂停或终止 Z: 僵死UID:进程启动者的用户IDC:进程最近使用CPU的估算PRI:进程的优先级TIME:进程启动以后占用CPU的总时间CMD:启动该进程的命令名称TTY:进程所在终端的终端号复制代码
# 手动启动进程前台启动:用户输入命令,直接执行程序后台启动:在命令行尾加入“&”符号复制代码
# Ctrl+Z 将当前进程挂起,即调入后台并停止执行# jobs 查看处于后台的任务列表# bg 将前台作业切换到后台运行,若没有指定作业号,则将当前作业切换到后台# fg 将处于后台的进程恢复到前台运行,需指定任务序号# Ctrl+C 中断正在执行的命令复制代码
# kill killall 终止进程kill 用于终止指定PID号的进程killall 并不是终止所有进程,用于终止指定名称的所有进程 -9 用于强制终止复制代码
# pkill 根据特定条件终止相应的进程 常用选项: -U:根据进程所属的用户名终止相应进程 -t:根据进程所在的终端终止相应进程复制代码
top命令用途:查看动态的进程排名信息按P键根据CPU占用情况对进程列表进行排序 按M键据根内存占用情况进行排序按N键根据启动时间进行排序按h键可以获得top程序的在线帮助信息按q键可以正常退出top程序按k结束进程(9:强制结束进程)按r修改优先级(NI)使用空格键可以强制更新进程状态显示通过更改进程的nice值,可以调整进程的优先级使它所占有的cpu份额大于或小于其他进程Nice值的范围从-20到20,默认为0通过提高nice的值,减少cpu的使用时间降低优先级只有root用户可以降低nice的值,提高优先级renice和top都可以用于更改正在运行的进程的nice值nice可以用于设置进程的nice值复制代码
计划任务管理
# at 在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务使用at命令,首先需要启动/etc/init.d/atdroot@computer: ~$ service atd start然后才可以使用at命令 at [HH:MM] [yyyy-mm-dd]root@computer: ~$ at 20:20at>echo "hello" # crtl+D 提交任务at>复制代码
# crontab 按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务若想使用crontab,需要启动/etc/init.d/crond并设置相应配置文件 全局配置文件,位于文件:/etc/crontab 用户定义的设置,位于文件:/var/spool/cron/用户名crontab设置格式: 分钟 小时 日期 月份 星期 任务分钟 取值为从0到59之间的任意整数小时 取值为从0到23之间的任意整数日期 取值为从1到31之间的任意整数月份 取值为从1到12之间的任意整数星期 取值为从0到7之间的任意整数,0或7代表星期日命令 要执行的命令或程序脚本时间数值的特殊表示方法* 表示该范围内的任意时间, 表示间隔的多个不连续时间点- 表示一个连续的时间范围/ 指定间隔的时间频率例如:0 17 * * 1-5 周一到周五每天17:00 30 8 * * 1,3,5 每周一、三、五的8点30分0 8-18/2 * * * 8点到18点之间每隔2小时0 0 */3 * * 每隔3天# 编辑计划任务crontab -e [-u 用户名]假设root用户,需要完成以下任务每天早上7:50自动开启sshd服务,22点50时关闭每隔5天清空一次FTP服务器公共目录/var/ftp/pub(如果目录不存在,可以安装vsftpd,或者自己创建目录)每周六的7:30时,重新启动httpd服务每周一、三、五的17:30时,打包备份/etc/httpd目录root@computer: ~# crontab -e50 7 * * * /usr/bin/systemctl start sshd50 22 * * * /usr/bin/systemctl stop sshd0 0 */5 * * /usr/bin/rm -rf /var/ftp/pub/*30 7 * * 6 /usr/bin/systemctl restart httpd30 17 * * 1,3,5 /usr/bin/tar czvf httpdconf.tar.bz2 /etc/httpd 注意:执行命令需要绝对路径,可以通过whereis来查找绝对路径# 查看计划任务crontab l [-u 用户名]root@computer: ~# crontab -l # 查看自己的计划任务root@computer: ~# crontab -l -u jerry # 查看jerry的计划任务# 删除计划任务crontab -r [-u 用户名]root@computer: ~# crontab -r -u jerry # 删除jerry的计划任务复制代码
服务管理
服务的分类
系统服务:某些服务的服务对象是Red Hat Enterprise Linux系统本身,或者Red Hat Enterprise Linux系统的用户,这类服务称为系统服务。比如负责用来监控软件磁盘阵列状态的mdmonitor服务,就是一个系统服务。
网络服务:另外有许多服务,提供给网络中的其他客户端调用,这类服务统称为网络服务。例如网站服务(Web Service)、网络文件系统服务(Networking File System Service)等,都属于网络服务。
常用命令
运行一个服务systemctl start foo.service关闭一个服务systemctl stop foo.service重启一个服务systemctl restart foo.service显示一个服务的状态systemctl status foo.service开机启动一个服务systemctl enable foo.service开机禁用一个服务systemctl disable foo.service查看安装哪些服务systemctl list-unit-file复制代码