在linux中每个执行的程序都称为一个进程,每个进程都分配一个ID号(pid进程号)。每个进程都可能以两种方式存在,即前台和后天。前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但屏幕上无法看到的进程,通常使用后台的方式执行。
一帮系统的服务都是以后台进程的方式存在的,而且都会常驻在系统中,直到关机才结束。
System v显示风格
ps指令常配合grep使用,如查看sshd服务
以全格式显示当前的所有进程,BSD显示风格
这两个命令都可以查看进程列表,不同点如下:
若是某个进程执行一般需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。
kill [选项] 进程号(通过进程号杀死进程)
killall 进程名称 (通过进程名称杀死进程,支持通配符,这在系统负载过大而变得很慢时很有用)
常用选项:-9,表示强迫进程立即停止
pstree [选项]
常用选项:
服务(service)的本质就是进程,运行在后台,通常都会监听某个端口,等待其他程序的请求,比如(mysqld,sshd,firewall),因此我们又称之为守护进程。
service 服务名 [start | stop | restart | reload | status]
service指令管理的服务可以在/et/init.d
查看
使用setup
查看【系统服务】就可以看到全部。
linux系统有7种运行级别,常用的是3和5。centos7以后对运行级别简化成3和5.
通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭。chkconfig
指令管理的服务在/etc/init.d查看
chkconfig基本语法
chkconfig --list [ | grep xxx]
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
chkconfig重新设置服务后自启动/关闭,需要重启机器reboot才能生效
在centos7以后,很多服务不再使用service
,而是使用systemctl
。
systemctl [start | stop | restart | status] 服务名
systemctl指令管理的服务在/usr/lib/systemd/system
查看
systemctl list-unit-files [ | grep 服务名] (查看服务开机启动状态)
systemctl enable 服务名 (设置服务开机启动)
systemctl disable 服务名 (关闭服务开机启动)
systemctl is-enabled 服务名 (查询某个服务是否是自启动)
在生产环境下往往需要打开防火墙,但是如果把防火墙打开,外部请求数据包就不能跟服务器监听端口通讯了。需要我们打开指定端口,比如8080,3306,22.
firewall指令
firewall-cmd --permanent --add-port=端口号/协议
firewall-cmd --permanent --remove-port=端口号/协议
firewall-cmd --reload
firewall-cmd --query-port=端口/协议
top和ps命令类似,都是用来显示正在执行的进程。top和ps最大的不同在于top在执行一段时间可以更新正在运行的进程。
top [选项]
选项说明:
交互操作说明:
补充:
netstat [选项]
选项说明: