进程-运行中的程序,从程序开始运行到终止的整个生命周期是可管理的
查看命令
ps
-e 表示所有的终端运行的进程
-f 显示更多信息,比如 UID、PPID(父进程)、CMD(命令的完整路径)
-L 多显示 LWP ,线程信息
ps -eLf 常用命令
pstree 查看进程树
top 动态查看进程信息top -p 进程号
结论:
进程也是树形结构
进程和权限有着密不可分的关系
top命令
第一行
34min 表示这台机器已经启动34分钟没有关机了
2users 表示有2个用户登录
平均负载:1分钟,5分钟,15分钟
第二行
一共运行的任务,几个在running ,几个在sleeping
第三行(平均值,按 1 会把所有 逻辑cpu 的使用情况列出来)
2.8 us 1.8 sy 97.7 id 0.0 wa
us 表示用户计算,sy表示进程之间状态交互,id表示空闲,wa表示磁盘等待
第四行
内存状态
第五行
交换分区(虚拟内存)
● 进程的优先级调整
调整优先级 nice 范围从 -20 到 19,值越小优先级越高,抢占资源就越多
nice -n 10 ./rest.sh 启动的时候调整为 10
renice 重新设置优先级
renice -n 15 19312 已经处于启动的情况下进行调整。根据进程号
进程的作业控制
&符号,后台运行
./test.sh &
jobs 把处于后台运行的程序调到前台显示
jobs 能得到一个编号
fg 编号,可以调到前台
ctrl z,把已经处于前台的程序调到后台,状态会stop
● 进程的通信方式
信号是进程间通信方式之一,典型用法是:终端用户输入中断命令,通过信号机制停止一个程序的运行。使用信号的常用快捷键和命令
kill -l 查看所有的信号
SIGINT 通知前台进程组终止进程 ctrl c,2号信号
SIGKILL 立即结束程序,不能被阻塞和处理 kill -9 pid ,9号信号
● 守护进程和系统日志
守护进程(精灵进程)
使用 nohup 与 & 符号配合运行一个命令 (nohup进程不是守护进程)
nohup 命令使进程忽略 hangup(挂起)信号。关掉终端这个进程依然可以运行,忽略输入并且把输出打印到 nohup.out
守护进程(daemon)和一般进程有什么差别呢?
开机自启,守护进程不需要终端,输出可以打印到特殊的文件中,进程所占用的目录是根目录。cd /proc/ 这个目录是内存信息,相应的进程会有进程号同名的目录。
使用 screen 命令,进入screen环境后,如果远程连接断掉了,可以通过screen恢复工作现场
screen 进入 screen 环境
ctrl a然后再单独按d退出(detached)screen 环境
screen -ls 查看 screen 的会话
screen -r sessionid 恢复会话系统日志文件 /var/log系统常规日志:messages内核运行情况:dmesg安全日志 secure定时任务日志 cron
服务(提供守护进程)集中管理工具
- service
- systemctl(CentOS7以后,可以理解service升级版)
service 启动脚本cd /etc/init.d/ 目录下
vim network 可以查看network的启动脚本,200多行,完全由编写人员自己控制,比较复杂;
systemctl 启动脚本
cd /usr/lib/systemd/system/
vim sshd.service
原有的init,linux的1号进程
init 0 关机 (不能用kill -9*掉这个进程,只能0结束这个进程,进而关机)
init 6 重启
init 3 字符终端
init 5 图形界面
systemctl 常见操作
systemctl status|start|stop|restart|reload|enable|disable 服务名称
1、restart 和reload差别,reload不停服务,直接重启
2、enable开机启动,disable不开机启动
SELinux简介
MAC(强制访问控制)和DAC(自主访问控制)。SELinux就是 MAC,生产环境一般很少用,都是关闭的,比较麻烦。
根据进程pid查端口lsof -i |grep pid
根据端口port查进程
lsof -i:port
根据进程pid查端口
netstat -nap |grep pid
根据端口port查进程
netstat -nap |grep port