Linux 系统管理 - 进程控制
一、进程查看命令
ps:进程状态
pstree:进程树状结构
top:看进程状态
1、 ps命令
ps -eLf | more L:展示线程数
2、pstree:查看进程树
3 top 命令
up xx分钟:总运行小时数
load average: 0.1(1分钟采样) 0.5(5分钟采样) 0.6(15分钟) => 1:满负载 0.5半负载
%cpu(s): us(用户%比) sy(系统进程状态交互%比) ,id(空闲状态%比)wa (io等待)
Kib Swap(交换分区/虚拟内存)
技巧: 按s键 ,将默认3s刷新可改为1s刷新
按数字1,支持展示多个cpu运行情况查看
top -p 18746 #查看具体进程信息
二、进程优先级调整
2.1 优先级调整
nice -n 10 ./a.shtop -p 10 #对应PID的NI选型为10
renice -n 15 15132 #对已进行的进程的调整优先级
2.2 作业控制
./1.sh & #后台进程启动 &jobs #查看后台进程
fg 编号 # 代表jobs的任务号,将任务调到前台
ctrl+z 调整到后台并是停止状态
top命令查看 S:T T:代表stop状态 top -p 18746
bg 编号:在后台重新启动任务
三、进程间通信
kill -l 1) SIGHUP:ctrl+c 9)SIGKILL:kill -9
ctrl+c 强制终止
kill -9 pid
四、守护进程
1、nohup
tail -f /var/log/messages
ps -ef | grep tail #获取进程pid
nohup tail -f /var/log/messages & # nohup和&一起使用,即使关闭终端,程序也不关闭
hup进程查看
cd /proc/27451 #进入进程
ls -l exe #查看进程命令
ls -l fd #查看输出
# 0-> /dev/null 标准输入
# 1 -> /root/nohup.out 标准输出
# 2 -> /root/nohup.out 标准输出
daemon进程查看
ps -ef | grep sshd
cd /proc/4525
ls -l exe
ls -l fd
# 0-> /dev/null 标准输入
# 1 -> socket:[32281] 标准输出
# 2 -> socket:[32281] 标准输出
五 screen命令
相当于开启一个screen会话进程,内部可执行自己命令
screen #进入screen环境
ctrl+a d #推出screen环境
screen -ls #查看screen会话
screen -r sessionid #恢复会话
六 系统日志
/var/log/messages: 系统常规日志
/var/log/secure:系统安全日志
/var/log/cron:周期性任务日志
/var/log/dmesg :查看启动日志
tail -f cron -- 查看定时任务
tail -f messages -- 查看信息
tail -f dmesg --查看启动日志
tail -f secure -- 查看安全日志
七 服务管理工具sytemctrl
service *** start|stop|restart|statussystemctl start|stop|restart|status|enable|disable xxx
enable:开机自动运行
supervisor #可以在进程意外结束时自动拉起进程
service的启动脚本
cd /etc/init.d #所有service启动脚本放在该目录
#所有脚本自己实现start,stop,restart,status等命令
#vim network
systemctl启动脚本
cd /usr/lib/systemd/system/ #所有systemctl启动脚本放在该目录
#vim sshd.service #简单多了
[Unit] #启动顺序
Description=OpenSSH server daemon
After=network.target sshd-keygen.service
Wants=sshd-keygen.service
[Service]
EnvironmentFile=/etc/sysconfig/sshd #配置文件
ExecStart=/usr/sbin/sshd -D $OPTIONS #启动
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure #重启
RestartSec=42s
[Install]
WantedBy=multi-user.target