跳转至

服务管理

systemctl#

sudo systemctl start   服务名 (启动一项服务)
sudo systemctl stop    服务名 (停止一项服务)
sudo systemctl enable  服务名 (开机启动一项服务)
sudo systemctl disable 服务名 (取消开机启动一项服务)

进程管理#

进程: 是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

进程管理最重要的就是 ps 命令:

  • ps aux ,查看系统中所有进程,使用 BSD 操作系统格式;
  • ps -le ,查看系统中所有进程,使用 Linux 标准命令格式;

输出的格式含义:

  • USER:该进程由哪个用户产生的;
  • PID:进程的 ID;
  • %CPU:进程占用 CPU 资源的百分比;
  • %MEM:进程占用物理内存的百分比;
  • VSZ:进程占用虚拟内存的大小,单位 KB;
  • RSS:进程占用实际物理内存的大小,单位 KB;
  • TTY:进程在哪个终端运行的,tty1-tty7 代表本地控制台终端,tty1-tty6 是本地的字符界面终端,tty7 是图形终端,pts/0-255 代表虚拟终端,如果是 ? 则代表是系统进程;
  • STAT:进程状态,R-运行,S-睡眠,T-停止,s-包含子进程,+-位于后台;
  • START:进程启动时间;
  • TIME:进程占用 CPU 的运算时间,注意不是系统时间;
  • COMMAND,产生此进程的命令名;

杀死进程#

杀死某个进程kill

按照进程名杀死进程killall

按照进程名杀死进程,加 -t 可以按照终端号踢出用户pkill

杀死进程时,可以跟信号,信号很多,常用信号:

信号代号

信号名称

说明

1

SIGHUP

让进程立即关闭,然后重新读取配置文件之后重启,平滑重启

2

SIGINT

程序终止信号,用于终止前台进程,相当于 ctrl + c 快捷键

9

SIGKILL

强制终止,用来立即结束程序的运行,本信号不能被阻塞、处理和忽略

15

SIGTERM

正常结束的信号,kill 命令默认就是这个信号,有时候进程已经发生问题,正常无法终止,此时会使用 -9 信号

所以常用杀死进程的命令:正常杀死 kill -1 2235 或者强制杀死 kill -9 2235

作者:SHERlocked93
链接:https://juejin.cn/post/6844904080972709901
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

进程放入后台#

当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作;
放入后台的命令必须可以持续运行一段时间,这样我们才能扑捉和操作这个工作;
放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行;

把进程放入后台有两个主要命令:
<命令> & 把命令放入后台,并在后台执行
<命令> 执行后按下ctrl + z 快捷键,放在后台暂停

查看正在后台的工作,可以使用jobs [-l]命令,-l 是显示工作的 PID。

+ 代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作,- 代表倒数第二个放入后台的工作。

恢复到前台:

fg %工作号 将后台暂停的工作恢复到前台执行,这里的 % 可以省略,注意工作号和 PID 的区别;
bg %工作号 将后台暂停的工作恢复到后台执行,后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行;

后台命令**脱离登陆终端执行**的方法:

第一种方法是把需要后台执行的命令加入 /etc/rc.local 文件;
第二种方法是使用系统定时任务,让系统在指定的时间执行某个后台命令;
第三种方法是使用 nohup 命令;

nohup 命令的使用方法 nohup <命令> &

参考#

半小时搞会 CentOS 入门必备基础知识 - 掘金