Linux---进程管理

引言

  正如Windows系统里有进程一说,Linux系统中每个执行的程序都成为一个进程,每个进程都分配一个进程号。

  每个进程都会对应一个父进程,而这个父进程可以复制多个子进程,例如www 服务器。

  每个进程都可能以两种方式存在,前台与后台:前台进程就是用户目前的屏幕上可以进行的操作,后台进程则是虽然在执行,但是不能在屏幕上看到进程,通常使用后台打开。

  一般系统的服务都会以后台进程的方式打开,而且会常驻在系统中,知道关机才结束进程。

1)显示系统执行的进程

  查看进程使用的指令是ps,一般来说都会配合参数使用:ps -aux

  ps -a : 显示当前终端的所有进程信息

  ps -u :    以用户的格式显示进程信息

  ps -x : 显示后台进程运行的参数

  

  ps -ef | more

  

  值得一提的是这里还有个 C 列:这里表示CPU用于计算执行优先级的因子,此数值越大,表明进程是CPU密集型运算,执行优先级会降低;反之如果数值越小,表明进程是I/O密集型晕眩,执行的优先级会提高。【重要】

  如果知道进程名,可以根据名称查询父进程号:

  显示sshd的父进程号:

  

2)终止进程kill和killall

  如果某一个进程执行时主要终止,或者某一进程消耗了过多的系统资源,可以考虑使用kill指令来停止该进程。

  ①、基本语法

      kill 【选项】 进程号  通过进程号杀死进程

      killall 进程名  通过进程名杀死进程,也支持通配符,这在系统负载过大而变得很慢时很有用。

      常用选项:-9 :表示强迫进程立刻停止

  ②、使用案例

    案例1:踢除非法用户

      为此我用xshell登陆了普通用户hadoop1

    

      查看用户进程号

    

      杀死进程

    

    此时会看到XShell那里绿色变成红色,被剔除了。

3)查看进程树pstree

  pstree 【选项】可以更加直观的来看进程信息

  常用选项:-p  显示进程的PID

       -u  显示进程的所属用户

  

4)服务(Service)管理

  服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysql、sshd、防火墙)因此我们称之为守护进程,是Linux中的重要知识点

  

  service 服务名 【选项】

  选项处可填:start/stop/restart/reload/status,比如你可以使用service iptables status查看防火墙的状态,可以使用service iptables stop来关闭防火墙。

  关于关闭或启用防火墙,有个细节需要注意:通过上述方式关闭或启动服务知识临时的,当系统重启后,还是会到原来对该服务的设置,如果希望设置某个服务自启动或永久关闭,要使用chkconfig指令。

5)查看服务名

  方式一:指令 setup 就可以看到跳出窗口

  方式二:/etc/init.d/ 服务名  ls -l /etc/init.d

6)开机的流程说明

  Linux启动流程:

   开机==>BIOS ==>/boot牵引==>init进程1==>运行级别==>运行对应的服务

7)chkconfig指令

  通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭

  ①、查看服务

    chkconfig --list

    chkconfig 服务名 --list

    chkconfig --level 5 服务名 on/off

  使用chkconfig重新设置服务后自启动或关闭,需要重启机器reboot才能生效

8)动态监控进程【重要】

  top与ps指令很相似,他们都用来显示正在执行的进程,但是top与ps的不同之处在于top指令会在执行一段时间后更新正在运行的进程。

  top【选项】

   常用选项:-d 秒数  指定top命令每个几秒更新一次,默认是3秒。

        -i   使top不显示任何闲置或者僵死进程

        -p  通过指定监控进程ID来监控某个进程的状态

  当指令top指令时可以进行交互:【比较重要】

  p  以CPU使用率排序,默认就是此项

  M  以内存的使用率排序

  N  以PID排序

  q  退出top

  u  提示你输入哪一位用户的进程

  k  同时要杀死的进程的进程号

9)查看系统网络情况 netstat 【重要】

  netstat 【选项】

  常用选项:-an  按一定的顺序排列输出

       -p    显示哪个进程在调用

  案例1:查看系统所有的网络服务

  

  q键退出

  案例2:查看服务名为sshd的服务信息

  

posted @ 2019-09-29 20:33  菜菜菜鸡  阅读(234)  评论(0编辑  收藏  举报