引言

这篇文章前半部分实例演示Linux系统服务管理相关命令,介绍系统服务的预设启动脚本放置的位置,以及如何启动和停止某个特定服务;后半部分会实例演示几个常用的用来管理系统进程的命令。

文章目录

0×1.Linux系统服务管理

a.系统服务预设启动脚本保存位置

在Linux服务器系列发行版CentOS中,系统的服务预设启动脚本以及一些第三方程序的服务预设启动脚本都是保存在"/etc/rc.d/init.d"中的;另外,"/etc/init.d"中的文件和"/etc/rc.d/init.d"中的文件相同,因为前者只是后者的软连接(ln)文件;

#可以看到"/etc/init.d"实际上只是"/etc/rc.d/init.d"的连接文件

qing@qingsword.com:~$ ls -ld /etc/init.d

lrwxrwxrwx. 1 root root 11 Aug 8 23:52 init.d -> rc.d/init.d

#系统在启动时会调用这个文件夹下的一些服务的启动脚本来完成对应服务的启动

b.如何启动或停止服务

对服务的启动和停止操作需要root权限(或sudo),有两种方法可以启动或停止某服务,这里用"bluetooth"服务为例,来看下面几个操作实例:

#方法一:

#查询服务当前状态

qing@qingsword.com~:$ sudo service bluetooth status

bluetooth stop/waiting (未启动)

#启动服务

qing@qingsword.com~:$ sudo service bluetooth start

bluetooth start/running, process 6437

#停止服务

qing@qingsword.com~:$ sudo service bluetooth stop

bluetooth stop/waiting

#方法二:

#查询服务当前状态

qing@qingsword.com:~$ sudo /etc/init.d/bluetooth status

* bluetooth is not running

#启动服务

qing@qingsword.com:~$ sudo /etc/init.d/bluetooth start

* Starting bluetooth [ OK ]

#停止服务

qing@qingsword.com:~$ sudo /etc/init.d/bluetooth stop

* Stopping bluetooth [ OK ]

c.ubuntu如何创建自启动脚本

在Ubuntu中,系统的启动脚本同样是保存在"/etc/init.d"目录中,所不同的是,这个目录是真实目录,而非软连接,Ubuntu将要启动的脚本连接文件放置在"/etc/rc[0~6+S].d"这几个目录中(rc0.d/ rc1.d/ rc2.d/ rc3.d/ rc4.d/ rc5.d/ rc6.d/ rcS.d/ ),不同的目录代表了不同的运行等级;如果进入其中之一就会发现,他们下面创建了软连接指向"/etc/init.d"目录中的启动脚本,我们默认进入哪个启动等级环境,就会在启动时运行对应等级那个文件夹中的S开头的脚本:

#查看当前启动级别,Ubuntu默认启动级别是5

qing@qingsword.com:~$ runlevel

N 5

#查看对应启动级别自启动的脚本文件夹中的内容

qing@qingsword.com:~$ ls -l /etc/rc5.d/

lrwxrwxrwx 1 root root 20 1月 30 2015 S20kerneloops -> ../init.d/kerneloops

...

lrwxrwxrwx 1 root root 15 1月 30 2015 S50saned -> ../init.d/saned

lrwxrwxrwx 1 root root 19 1月 30 2015 S70dns-clean -> ../init.d/dns-clean

...

lrwxrwxrwx 1 root root 18 1月 30 2015 S99rc.local -> ../init.d/rc.local

文件名以S或者K开头,S开头表示是系统随机启动的脚本,K开头是不随机启动的脚本,随后的数字表示启动的顺序,数字越小的越早被启动;这样设计的好处是,当一些程序的启动依赖另外一些程序的时候,让被依赖的程序先启动只需要将这个数字设置小一点就可以了(比如S20的启动要优先与S30)。

了解这些基础知识后,如果现在我想将"/etc/init.d/bluetooth"这个蓝牙启动脚本,加入当前运行等级(5)的开机自启动,思路就已经很清晰了:

#只需要在/etc/rc5.d目录下创建一个软连接指向蓝牙的启动脚本即可,S代表随机启动,99代表启动优先级最低

qing@qingsword.com:~$ sudo ln -s /etc/init.d/bluetooth /etc/rc5.d/S99bluetooth

下面是创建自定义启动脚本的流程示例:

#1.使用root权限创建一个启动脚本文件放置在"/etc/init.d"文件夹下

qing@qingsword.com:~$ sudo vim /etc/init.d/clearfolder

#2.在这个文件中输入你想要执行的命令内容保存,本例让这个脚本启动的时候清空"/home/qing/test/"文件夹中的所有内容

#!/bin/bash

rm -rf /home/qing/test/*

#3.给脚本添加可执行权限

qing@qingsword.com:~$ sudo chmod 700 /etc/init.d/clearfolder

#4.查看登陆环境默认运行等级,并在对应等级的启动目录中创建启动软连接指向刚才创建的脚本文件

qing@qingsword.com:~$ runlevel

N 5

qing@qingsword.com:~$ sudo ln -s /etc/init.d/clearfolder /etc/rc5.d/S99clearfolder

#5.每次启动,都会自动删除目录"/home/qing/test/"中的所有文件,直到将这个启动软连接删除

0×2.Linux系统进程管理

a.使用ps输出系统进程

终端中使用"ps"命令可以输出当前系统正在运行的进程,ps有下面几个常用参数:

l 长格式输出

u 按用户名和启动时间的顺序来显示进程

f 树形显示(父进程和子进程一目了然,想要完全终止某个进程,需要kill这个进程的父进程,仅仅是结束子进程父进程可能重新创建此子进程)

a 显示所有用户的所有进程(包括其他用户)

x 显示无控制终端的进程

这里还是用"bluetooth"这个服务来演示,首先按照上面一小节的方法启动它,然后显示其进程信息:

qing@qingsword.com:~$ sudo service bluetooth start

#"grep"是一个筛选命令,这里可以简单的理解成"仅显示包含bluetooth的进程",输出中PID=8417的进程是"grep"筛选命令的进程,PID=6722是"bluetooth"服务的主进程。

qing@qingsword.com:~$ ps -auxf | grep bluetooth

qing 8417 0.0 0.0 S+ 18:39 0:00 | \_ grep --color=auto bluetooth

root 6722 0.0 0.0 Ss 16:59 0:00 /usr/sbin/bluetoothd

/*

* 这里介绍一下上面的输出中几个字段的含义:

*

* USER 进程的属主

* PID 进程ID

* %CPU 进程占用CPU

* %MEM 进程占用内存

*

* STAT 进程状态,有下面几种状态:

* D 不间断的睡眠

* R 正在运行中

* S 休眠中

* T 停止或被追踪

* X 死掉的进程

* Z 僵尸进程(子进程将要退出还没有完全退出时,父进程收集并释放其占用的资源,这个短暂的状态称为僵尸状态)

* s(小写) 进程的领导者(在它下面有子进程)

* < 优先级高的进程

* N 优先级低的进程

* L 有些页被锁进内存

* + 后台进程组

* l 多线程

*

* START 进程启动时间

* TIME 进程消耗CPU时间

* COMMAND 命令的名称和参数

*/

#将系统中全部的进程输出到文件"testfile"中

qing@qingsword.com:~$ ps auxf > testfile

b.使用kill命令终止进程

使用ps查看到"bluetooth"的进程后,可以使用kill命令来终止这个进程:

#kill后面写要结束的进程的PID号,参数"-9"强制执行

qing@qingsword.com~:$ sudo kill -9 6722

#pkill命令能根据进程名称来结束进程,下面这条命令和上面kill的效果相同

qing@qingsword.com~:$ sudo pkill bluetoothd

c.使用top命令动态监控进程

在终端下输入"top"回车,即可打开top动态进程监控,默认的刷新时间是3秒,它的显示类似windows的任务管理器,下面是top中常用的几个指令:

使用"shift+>"和"shift+

s 设置进程刷新时间间隔,单位秒,按空格可以立即刷新列表;

k 输入PID即可杀死进程;

M 按照内存占用由大到小排列;

P 按照CPU占用由大到小;

q 退出top;

h help命令提示;

linux服务进程文件,[Linux实用命令]-6-服务与进程管理相关推荐

  1. linux下载文件夹到本地命令行,linux下载文件到本地命令,linux下载文件到本地命令 下载工具...

    linux下载文件到本地命令,linux下载文件到本地命令 下载工具 来源:互联网/编辑:佚名/时间:2020-09-08 在手机上看 扫一扫进入手机端 linux用户命令在哪个文件夹下 用 whic ...

  2. linux rm命令参数及用法详解---linux删除文件或目录命令

    http://www.linuxso.com/command/rm.html linux下rm命令使用详解---linux删除文件或目录命令 用户可以用rm命令删除不需要的文件.该命令的功能为删除一个 ...

  3. Linux 向文件末尾追加命令(转载)

    Linux 向文件末尾追加命令 //echo后边用单引号包围要添加的内容 echo 'add content'>>/home/data/test.sh 1 2 注意:>> 是追 ...

  4. linux大文件分割 split命令

    原文地址为: linux大文件分割 split命令 inux split 命令 功能说明:切割文件. 语 法:split [--help][--version][-<行数>][-b < ...

  5. linux之文件分割split命令详解

    linux之文件分割split命令详解 进行文件分割时我们需要考虑几个问题: 如何分割?是按行分割还是按文件大小分割?是每100行分成一个文件还是每100K分成一个文件? 分割以后子文件名称是什么格式 ...

  6. Linux查找文件位置的命令

    Linux查找文件位置的命令:find / -name 文件名 个人觉得这个命令十分重要,不仅是在开发时能节省查找文件的时间,而且在参加一些比赛时能发挥出用处.本人就是在比赛时不会此命令少拿了十几分, ...

  7. Linux 拷贝文件:cp 命令

    Linux 拷贝文件:cp 命令 cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令. 常用选项说明: 命令名称:cp 命令英文原意:copy 命令所在路径:/b ...

  8. Linux Tomcat日志查看实用命令

    实用命令: 查看tomcat运行日志 tail -f catalina.out 通过关键字搜索查看日志 cat jeewx-2015-09-20.log | grep 验证码 查看固定时间日志 cat ...

  9. linux下载文件的常用命令wget

    wget是Linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径 例如: # wget http://www.linuxsense.org/xxxx/xxx. ...

最新文章

  1. PHP关于curl_setopt几个参数设置的说明
  2. SuperSocket入门(二)- 探索AppServer、AppSession,Conmmand和App.config
  3. android布局的作用,Android UI布局经验总结
  4. Linux .bin安装文件制作
  5. JavaScript学习笔记01【基础——简介、基础语法、运算符、特殊语法、流程控制语句】
  6. Python基础概念_2_基础概念
  7. matlab c++ 符号变量问题
  8. ES6, Angular,React和ABAP中的String Template(字符串模板)
  9. 【AI视野·今日CV 计算机视觉论文速览 第213期】Fri, 4 Jun 2021
  10. WARNING: IPv4 forwarding is disabled. Networking will not work.解决方法
  11. 辨异 —— Java 中的抽象类和接口
  12. 985 211 PHP,你们要的985、211高校官方报录比汇总来了
  13. 设置devenv.exe启动版本(转)
  14. 微信小程序搭建tabbar
  15. 基于html房屋管理系统,一种Web界面的互联网房屋销售管理系统设计的制作方法...
  16. DFT信道估计步骤及实例
  17. 巴塞尔协议中的计算公式_十分钟读懂巴塞尔协议
  18. Revit API、AddInManager、RevitLookup、SDK的用途
  19. numpy中数据不以科学记数法显示
  20. 微信小程序之解决background-image属性失效

热门文章

  1. struts2上传文件时把文件放到服务器真实路径下的webapps\upload下
  2. html中注释有几种_历史尝试:小白HTML学习笔记(2)
  3. php 匹配div正则表达式,Php正则表达式匹配div
  4. sql 相加_Java整数相加溢出怎么办?Java 8 还是厉害!
  5. 人工智能导论 王万良教授_FCES2019 panel4:人工智能的第一堂课究竟讲什么?
  6. python运行pyc文件_python中__pyc__文件的生成和作用
  7. suse linux vnc 桌面号,在SUSE Linux下安装VNC的方法
  8. 微机原理换行代码_微机原理
  9. python functools.reduce_Python之functools.reduce使用
  10. 潮流趋势UI素材|梯度半透明、透明套件