博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux基础之进程管理与服务
阅读量:5861 次
发布时间:2019-06-19

本文共 3204 字,大约阅读时间需要 10 分钟。

进程的状态

进程被称作任务,有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复制代码

转载于:https://juejin.im/post/5cfe45306fb9a07ef90c8e92

你可能感兴趣的文章
微软云计算介绍与实践(实践之七)
查看>>
解决OSPF不连续区域的3种方法
查看>>
多形性
查看>>
周珍:那些年,我们一起谈论的SEO培训
查看>>
Oracle 也加入到 Eclipse MicroProfile项目中了
查看>>
mysqldump导入导出mysql数据库
查看>>
linux中软硬链接的区别
查看>>
由于if功力不足引出的Helper
查看>>
ng-zorro-antd 入门
查看>>
CentOS修改文件夹权限
查看>>
Esper学习笔记三:EPL语法(1)
查看>>
dcoker 搭建 elk环境
查看>>
Spring源码深度解析:学习笔记
查看>>
python+django(admin管理工具)
查看>>
IPv6中国迎来网络主权博弈的关键时刻
查看>>
如何在Rancher 2.0中使用服务发现
查看>>
Docker命令行与守护进程如何交互?
查看>>
阿里官方Java代码规范标准
查看>>
iframe标签使用总结
查看>>
Taro请求问题
查看>>