进程管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程管理相关的知识,希望对你有一定的参考价值。

进程管理
进程和程序之间的关系
程序 #静态没有执行的代码 只会占用磁盘空间
进程 #执行的代码放入内存中运行 占用内存 CPU
PID #编号 标识进程 PID越小越优先运行
父进程 #一般由管理员运行
子进程 #一般由父进程调动
当父进程衰亡时 会先杀死所有由自己调动的子进程

查看进程树
pstree #Processes Tree
格式 pstree 选项 PID或者用户名
常用命令选项
-a:显示完整的命令行
-p:列出对应PID编号

systemd:内核直接运行的第一个进程,PID永远为1

[[email protected] ~]# pstree
[[email protected] ~]# pstree lisi
bash───vim
[[email protected] ~]# pstree -p lisi
bash(30712)───vim(30751)
[[email protected] ~]# pstree -ap lisi
#############################################
ps aux 操作
列出正在运行的所有进程

ps -elf 操作
列出正在运行的所有进程
#############################################
top 交互式工具
格式: top [-d 刷新秒数]

按大写的P cpu排序
按大写的M 内存排序
#############################################
pgrep — Process Grep
用途:pgrep [选项]... 查询条件

常用命令选项
-l:输出进程名,而不仅仅是 PID
-U:检索指定用户的进程
-t:检索指定终端的进程

[[email protected] ~]# pgrep log
[[email protected] ~]# pgrep -l log

[[email protected] ~]# pgrep -U lisi
[[email protected] ~]# pgrep -lU lisi
[[email protected] ~]# pstree -ap lisi

[[email protected] ~]# who #查看正在登陆的用户信息
[[email protected] ~]# pgrep -lU lisi
[[email protected] ~]# pgrep -lU lisi -t pts/2
#############################################
进程的调度(前后台)

放入后台启动
在命令行末尾添加“&”符号,正在运行的状态放入后台
Ctrl + z 组合键,暂停的状态放入后台

[[email protected] ~]# sleep 800 & #将前台的进程,正在运行放入后台
[[email protected] ~]# jobs #查看后台进程

[[email protected] ~]# jobs -l #查看后台进程,并且加上PID
[[email protected] ~]# sleep 700
^Z #按Ctrl+z可以暂停放入后台
[2]+ 已停止 sleep 700
[[email protected] ~]# jobs -l
[[email protected] ~]# bg 2 #将后台进程编号为2的,继续在后台运行
[2]+ sleep 700 &
[[email protected] ~]# jobs -l
[[email protected] ~]# fg 1 #将后台的进程恢复到前台
sleep 800
^C #按Ctrl+c结束进程
[[email protected] ~]# fg 2
sleep 700
^C #按Ctrl+c结束进程
#############################################
杀死进程
kill [-9] PID...
killall [-9] 进程名...

[[email protected] ~]# sleep 900 &
[[email protected]7 ~]# sleep 900 &
[[email protected] ~]# sleep 900 &
[[email protected] ~]# sleep 900 &
[[email protected] ~]# jobs -l
[[email protected] ~]# kill 1928
[[email protected] ~]# jobs -l
[[email protected] ~]# killall sleep
[[email protected] ~]# jobs -l

[[email protected] ~]# killall -9 -u lisi #强制踢出一个用户
#############################################
日志管理
日志 系统和程序的日记本
记录系统 程序运行中发生的各种时间
通过查看日志 了解以及排除故障
信息安全控制的依据

主要用途
/var/log/messages 记录内核消息、各种服务的公共消息
/var/log/dmesg 记录系统启动过程的各种消息
/var/log/cron 记录与cron计划任务相关的消息
/var/log/maillog 记录邮件收发相关的消息
/var/log/secure 记录与访问限制相关的安全消息
###############################################
tailf 实时跟踪 新增日值消息
#######################################################
users、who、w 命令
查看已登录的用户信息,详细度不同

last、lastb 命令
查看最近登录成功/失败的用户信息

[[email protected] ~]# users
[[email protected] ~]# who
[[email protected] ~]# w

[[email protected] ~]# last -2 #最近两次登录成功
[[email protected] ~]# lastb -2 #最近两次登录失败
####################################################
Linux内核定义的事件紧急程度

分为 0~7 共8种优先级别
其数值越小,表示对应事件越紧急/重要

0 EMERG(紧急) 会导致主机系统不可用的情况
1 ALERT(警告) 必须马上采取措施解决的问题
2 CRIT(严重) 比较严重的情况
3 ERR(错误) 运行出现错误
4 WARNING(提醒) 可能会影响系统功能的事件
5 NOTICE(注意) 不会影响系统但值得注意
6 INFO(信息) 一般信息
7 DEBUG(调试) 程序或系统调试信息等

提取由 systemd-journal 服务搜集的日志
常见用法
journalctl | grep 关键词
journalctl -u 服务名 [-p 优先级]
journalctl -n 消息条数
journalctl --since="yyyy-mm-dd HH:MM:SS" --
until="yyyy-mm-dd HH:MM:SS"

[[email protected] ~]# yum -y install httpd
[[email protected] ~]# systemctl restart httpd

[[email protected] ~]# journalctl -u httpd -p 6
#######################################################
systemctl控制

systemd
一个更高效的系统&服务管理器
开机服务并行启动,各系统服务间的精确依赖
服务目录:/lib/systemd/system/

控制服务状态
systemctl start|stop|restart 服务名...

查看服务的运行状态
systemctl status|is-active 服务名...
systemctl is-enabled httpd #查看是否随机自起

#########################################################
graphical.target 图形模式
multi-user.target 文本模式

当前切换图形模式
[[email protected] ~]# systemctl isolate graphical.target

每次开机都进入的模式,默认模式的修改
[[email protected] ~]# systemctl get-default

[[email protected] ~]# systemctl set-default graphical.target
[[email protected] ~]# systemctl get-default
[[email protected] ~]# reboot
######################################################

-10  :十天之内  

以上是关于进程管理的主要内容,如果未能解决你的问题,请参考以下文章

代码片段:Shell脚本实现重复执行和多进程

使用 Git 来管理 Xcode 中的代码片段

LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程(代码片段

massCode 一款优秀的开源代码片段管理器

如何管理在每个 git 版本中添加私有代码片段?

Android 逆向Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | Visual Studio 中 SDK 和 NDK 安装位置 )(代码片段