Linux 进程管理笔记
进程管理命令
ps 显示进程信息 (ps 只显示当前终端看到的进程
-e 显示不同终端的所有进程 (可用ps -e | more分页显示
-ef 显示进程信息的同时包含父进程 PPID
-eLf 显示进程信息的同时包含线程信息NLWP 即为轻量级线程数
PID为是进程唯一标识符 (进程可以重名) TTY为执行进程终端 pts/0为虚拟终端 tty0为字符终端
UID为启动进程的用户 进程可以更改自己的所属组
pstree 显示进程树 (根据进程的PPID 组成的一个进程树
top 动态显示进程信息
-p 只显示指定进程信息
s 更改进程信息刷新时间
1 将cpu信息合并/分散显示
进程控制 包括调整进程优先级 和进程作业控制
调整优先级 :优先级从-20到19 值越小优先级越高
nice 以指定优先级运行进程 nice -n num ./cmd 以num为优先级运行cmd
renice 重置正在运行进程的优先级 renice -n num PID 修改PID的优先级为num
进程作业控制 终端可以分前台和后台 前台就是我们输入命令的界面 进程也可以运行在终端后台
后台运行: 在运行的命令后面加&符号
调回前台: 使用jobs 可以查看后台运行的命令 然后使用 fg i 可以将任务i调回前台
暂停任务: ctrl-z 临时暂停并调回后台 但没有结束进程 可使用jobs查看任务列表 使用 fg i 将任务i调回前台运行 使用 bg i将任务调去后台运行.
进程通信: 信号
kill -l 查看所有信号
kill -9 PID 结束进程PID (编号为9的信号为SIGKILL
特殊进程:脱离终端运行的进程
守护进程(daemon)
特点:1 用户登录之前就启动的进程 2输出结果放到日志文件 3占用根目录
nohub命令(启动的进程)
特点:1 会忽略挂起信号 2关闭终端也会继续运行 3忽略输入将输出放到nohub.out 4终端关闭后父进程为1(孤儿进程)
screen 第三方工具 终端关闭时运行的任务会挂起但不会结束 防止因网络错误而影响与服务器的连接
screen 进入screen运行环境
ctrl-a d 退出screen环境\
screen -ls 查看screen会话
screen -r PID 恢复PID会话
服务管理工具
service centos6版本的服务管理命令 启动脚本在/etc/init.d/ 需要自己编写启动终止脚本(复杂)
启动分不同级别 init 0 关机 init 1 单用户启动 init 2 不带网络的多用户启动 init 3 字符多用户 init 5 图形多用户 init 6 重启
service 服务名称 start
systemctl centos7版本的服务管理命令 启动脚本放在/usr/lib/systemd/system/*.service 启动脚本简单的多 ([unit] 启动顺序 [service] 提供的服务
也分不同级别 runlevel[0-6].target 代表含义与init类似
systemctl start | stop | restart | reload(加载配置文件) | enable(开机运行) | disable 服务名称
systemctl get-default 获得当前启动级别
systemctl set-default 修改默认启动级别
SELinux 安全增强的Linux版本 强制访问控制 进程用户文件 都打上标签 用ps -Z id -Z ls -Z 查看标签
会降低性能 在生产服务器中通常关闭
getenforce 查看SELinux 状态 有enforcing permissive disabled三个取值
setenforce 更改SELinux 状态 但只是临时的
可修改 /etc/seliux/config 更改设置 持久性的