Linux系统异常进程管理
1、异常关闭服务和进程
1)【杀】进程
kill 进程【号】 ##温和、优雅
pkill 进程【名】 ##一下爆头
killall 进程【名】 ##优雅,可能需要多次反复
2)杀不掉处理(慎用)
强制,一招毙命
kill -9 进程号
killall -9 进程名
3)不要强制杀进程
数据库服务器:mysql、oracle,一定不能kill -9,否则服务起不来。
4)利用kill优雅重启服务(通知进程重读配置文件)
kill -HUP 进程号
5)异常关闭测试
a.启动测试
systemctl start nginx #启动nginx
b.检查
ps -ef|grep nginx #查看系统中所有包含"nginx"关键字的进程的信息
root 15506 1 0 16:59 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 15507 15506 0 16:59 ? 00:00:00 nginx: worker process
root 15510 8700 0 16:59 pts/0 00:00:00 grep --color=auto nginx
c.kill杀
systemctl start nginx #启动nginx
ps -ef|grep nginx #查看系统中所有包含"nginx"关键字的进程的信息
root 15506 1 0 16:59 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 15507 15506 0 16:59 ? 00:00:00 nginx: worker process
root 15510 8700 0 16:59 pts/0 00:00:00 grep --color=auto nginx
kill 15506 ##杀PID为15506的进程
ps -ef|grep nginx|grep -v grep #检查是否杀掉;整个命令的作用是查看系统中除了grep命令本身以外,所有与nginx相关的进程的信息。通常用于检查nginx服务是否正常运行。
d.killall杀
systemctl start nginx #启动nginx
ps -ef|grep nginx|grep -v grep #检查是否开启
root 15544 1 0 17:06 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 15545 15544 0 17:06 ? 00:00:00 nginx: worker process
killall nginx #杀进程
ps -ef|grep nginx|grep -v grep #检查是否关闭
e.pkill杀
systemctl start nginx #启动nginx
ps -ef|grep nginx|grep -v grep #检查是否开启
root 15544 1 0 17:06 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 15545 15544 0 17:06 ? 00:00:00 nginx: worker process
pkill nginx #杀进程
ps -ef|grep nginx|grep -v grep #检查是否关闭
进程与服务管理大总结:
1.查普通进程:
ps -ef ##简单查看进程ps aux ##看复杂进程信息,包括CPU MEM等资源占用情况。top ##动态查看复杂进程信息,包括CPU MEM等资源占用情况。
2.守护进程(网络服务)管理
启动、停止、重启服务、查看状态
systemctl start nginxsystemctl stop nginxsystemctl restart nginxsystemctl status nginx
早期版本:
service start nginx(等价/etc/init.d/nginx start)
service stop nginx(等价/etc/init.d/nginx stop)
service restart nginx(等价/etc/init.d/nginx restart)
service status nginx(等价/etc/init.d/nginx status)
3.守护进程(网络服务)开机自启动
systemctl enable nginx #开机自启动
systemctl disable nginx #禁止开机自启动
早期版本:
chkconfig nginx on #开机自启动
chkconfig nginx off #禁止开机自启动
4.查看服务开机自启动情况
systemctl list-unit-files
早期版本:
chkconfig --list
5.进程异常管理
kill 进程号 #kill 520pkill 进程名 #pkill nginxkillall 进程名 #killall nginx
强制杀死:-9
重读配置:-HUP 优雅重启
/bin/kill -HUP `cat /var/run/syslogd.pid
/bin/kill
: 这是一个用于发送指定信号给指定进程的命令。
-HUP
: 是信号编号1的别名,代表“挂起”信号(Hang Up)。在很多服务中,接收到这个信号会触发它们重新加载配置文件,而不是直接终止进程。
`cat /var/run/syslogd.pid`
: 这部分使用了命令替换(反引号包围的命令会在外部命令执行前先执行),首先执行cat /var/run/syslogd.pid
来获取syslogd
进程的PID(进程ID),然后将这个PID传递给kill
命令。/var/run/syslogd.pid
文件通常由syslogd在启动时创建,用于存储其进程ID,以便后续操作(如重启或停止)可以准确找到该进程。