服务管理
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 <命令> &