侧边栏壁纸
博主头像
lance

不为失败找借口,只为成功找方法。

  • 累计撰写 28 篇文章
  • 累计创建 0 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux常用命令之进程管理.md

lance
2025-07-05 / 0 评论 / 0 点赞 / 154 阅读 / 1,797 字
温馨提示:
本文最后更新于 2025-08-27,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Linux常用命令之进程管理

本篇继续分享Linux中常用命令。主要分享Linux系统的进程管理相关的命令。

ps命令——查看进程

查看当前时刻进程信息。

选项

a显示与终端相关的所有进程,包含每个进程的完整路径
u显示进程的用户信息
x显示与终端无关的所有进程
-e显示所有进程
-f额外显示UID,PPID,STIME栏位信息。
-u显示指定用户相关的进程信息

操作:

1、输出每个进程信息

[root@harbor ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 12月25 ?      00:00:57 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0  0 12月25 ?      00:00:00 [kthreadd]
root          4      2  0 12月25 ?      00:00:00 [kworker/0:0H]

2、查看特定进程信息

[root@harbor ~]# ps -ef |grep nginx
10000    135209 135159  0 12月28 ?      00:00:00 nginx: master process nginx -g daemon off;
10000    135415 135209  0 12月28 ?      00:00:00 nginx: worker process
10000    135416 135209  0 12月28 ?      00:00:00 nginx: worker process
10000    135417 135209  0 12月28 ?      00:00:00 nginx: worker process
10000    135418 135209  0 12月28 ?      00:00:00 nginx: worker process

3、BSD语法显示每个进程信息

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root 1  0.0  0.0 193872  6956 ?        Ss   12月25   0:57/usr/lib/systemd/systemd --switched-root --system --deserialize 22         
root          2  0.0  0.0      0     0 ?        S    12月25   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   12月25   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    12月25   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    12月25   0:02 [migration/0]

输出说明:

USER:该进程属于的用户。
PID:该进程的进程号。
%CPU:该进程使用掉的CPU资源百分比。
%MEM:该进程所占用的物理内存百分比。
VSZ:该进程使用掉的虚拟内存量(单位为Kbytes)。
RSS:该进程占用的固定的内存量(单位为Kbytes)。
TTY:该进程是在哪个终端机上面运作的,若与终端机无关,则显示“?”,
另外,tty1-tty6是本机上面的登入者进程,若为pts/0等,则表示为由网络连接进主机的进程。
STAT:该进程目前的状态,主要的状态包括如下几种。
R:正在运行,或者是可以运行。
S:正在中断睡眠中,可以由某些信号(signal)唤醒。
D:不可中断睡眠。·T:正在侦测或者是停止了。
Z:已经终止,但是其父进程无法正常终止它,从而变成zombie(僵尸)进程的状态。
+:前台进程。
l:多线程进程。
N:低优先级进程。
<:高优先级进程。
s:进程领导者。
L:已将页面锁定到内存中。
START:该进程被触发启动的时间。
TIME:该进程实际使用CPU运作的时间。
COMMAND:该进程的实际命令。

kill命令——终止进程

能中止你希望停止的进程

-l列出全部的信号名称
-s指定要发送的信号

kill命令默认发送的信号是15,用于结束进程。使用信号9可以强制终止进程。

top命令——动态显示各个进程的资源占用情况

top用于实时地对系统资源进行监控,输出各个进程的资源占用情况。同时top命令也是一个交互式命令。

交互式选项

交互式命令含义
h或?显示帮助信息,给出交互式命令的一些说明总结
m以内存排序显示
z打开/关闭颜色显示
n或#设置显示做大进程行数
q退出top

nohup命令——后台运行进程

nohup命令可以将程序以后台方式运行,被运行程序的输出信息将不会显示到终端。

无论是否将nohup命令的输出重定向到终端,输出都将写入到当前目录的nohup.out文件中。如果当前目录的nohup.out文件不可写,则输出重定向到$HOME/nohup.out文件中。

正常情况下,如果用户退出登录或会话终止,则用户正在执行并可持续一段时间的命令(非守护进程)将自动终止

实际工作中,我们一般会和&一起使用,让程序直接在后台运行。

runlevel命令——输出当前运行级别

[root@localhost ~]# runlevel
N 3
# 显示当前运行界别为3,即为命令行多用户模式

运行级别说明:

0停机
1单用户模式
2无网络的多用户模式
3多用户模式
4未使用
5图形界面多用户模式
6重启

init命令——进程初始化工具

init命令是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1

切换运行界别

# 关机
[root@localhost ~]# init 0   

# 重启 
[root@localhost ~]# init 6

service命令——管理系统服务

service命令用于centos6以及前面版本。centos7后使用systemd管理系统服务。

service命令用于对系统服务进程管理,可以对服务进行启动,停止,重启,重新加载配置,查看状态等操作。

操作:

# 启动服务
service chronyd start

# 停止服务
service chronyd stop

# 重启服务
service chronyd restart

# 平滑重启服务
service chronyd reload

# 查看服务状态
service chronyd status

systemctl命令——管理系统服务

systemctl是Systemd的主命令,用于管理系统。

systemd的配置目录:

  • /usr/lib/systemd/system/:每个服务最主要的启动脚本的配置放在这,有点类似以前的/etc/init.d;
  • /run/systemd/system/:系统执行过程中所产生的服务脚本所在目录,这些脚本的优先级要比/usr/lib/systemd/system/高;
  • /etc/systemd/system/:管理员根据主机系统的需求所创建的执行脚本所在目录,执行优先级比/run/systemd/system/高;
# 启动服务
systemctl start chronyd

# 停止服务
systemctl stop chronyd

# 重启服务
systemctl restart chronyd

# 平滑重启服务
systemctl restart chronyd

 # 查看服务状态
systemctl restart chronyd

# 列出已安装的unit
systemctl list-unit-files
 
 #  列出类型为service的项目
systemctl list-units --type=service

 # 输出主机当前的运行模式
systemctl get-default  

# 设置主机的运行模式,关闭图形界面,使用命令行模式
systemctl isolate multi-user.target 

#将目前的操作环境改为图形界面
systemctl isolate graphical.target  

 #系统关机
systemctl poweroff  

#重新开机 
systemctl reboot   

#进入暂停模式 
systemctl suspend   

#强制进入救援模式 
systemctl rescue   

#禁用某个服务
systemctl mask etcd.service   

#解除禁用某个服务
systemctl unmask etcd.service 
0

评论区