[命令] Linux 命令 ps (显示进程) (转载)

ps 命令的使用

Ps命令是Linux中最常使用的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照(查看静态的进程统计信息)。通过不同的命令选项可以有选择性的查看进程信息。

a:显示当前终端下的所有进行信息,包括其他用户的进程。与x选项结合时将显示系统中所有的进程信息。

u:使用以用户为主的格式输出进程信息。

x:显示当前用户在所有终端下的进程信息。

-e:显示系统内的所有进程信息。

-l:使用长格式显示进程信息。

-f:使用完整的格式显示进程信息。
# ps aux

解释:

USER:启动该进程的用户账号名称

PID:该进程在系统中的数字ID号,在当前系统中是唯一的。

TTY:表明该进程在哪个终端上运行。“?”表示未知或者不需要终端。

STAT:显示了进程当前的状态,如S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、+(前台进程)。对于僵死的进程,应该手动处理掉。(问:为什么?)

START:启动该进程的时间

TIME:该进程占用CPU的时间

COMMAND:启用该进程的命令名称

%CPU:CPU占用百分比

%MEM:内存占用百分比

VSZ:占用虚拟内存(swap空间)大小

RSS:占用常驻空间(物理内存)的大小
————————————————
版权声明:本文为CSDN博主「秃头阿鑫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_47763101/java/article/details/106391154

注明:所有转载内容皆直接从被转载文章网页的标题和内容的文本和图片中复制而来

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z
站主补充:
补充一:D 状态的进程
D 状态的进程代表处于不可以被杀死的休眠状态。D 状态的进程就算是用 kill -9 命令也无法杀死

补充二:将 ps 的输出工整
# ps -T

补充三:ps 显示 SELinux 的上下文标签
# ps -M
或者:
# ps -Z

[命令] Linux 命令 kill (进程杀死)

内容一:显示 kill 所有可用的选项

# kill --help

内容二:kill 的常用案例

2.1 案例一:强杀某一个 PID 号

# kill -9 <PID number>

或者:

# kill -<kill option> <PID number>

2.2 案例二:正常退出某一个 PID 号

# kill -15 <PID number>

2.3 案例三:杀死某一个进程名称下的所有 PID 号

# killall <process name>

[内容] Linux 后台进程的管理

内容一:将进程放入后台

1.1 直接将一个进程放到后台

# firefox&

1.2 将一个目前正在前台运行的进程放到后台

按下 “ctrl” 键和 “z” 键

内容二:显示放入后台的进程

2.1 显示所有放入后台的进程

# jobs

2.2 显示某一个放入后台的进程

2.2.1 显示某一个放入后台进程(通过后台进程号)
# jobs %<background process number>
2.2.2 显示某一个放入后台进程(通过后台进程名)
# jobs %<background process name>

(注意:只有后台进程名唯一时此操作才有效)

内容三:管理放入后台的进程

3.1 在后台启动放入后台的进程

3.1.1 在后台启动放入后台的进程(通过后台进程号)
# bg %<background process number>

(注意:只有可以在后台启动的进程才能在后台启动)

3.1.2 在后台启动放入后台的进程(通过后台进程名)
# bg %<background process name>

(注意:只有可以在后台启动的进程才能在后台启动,且只有后台进程名唯一时此操作才有效)

3.2 在前台启动放入后台的进程

3.2.1 在前台启动放入后台的进程(通过后台进程号)
# fg %<background process number>
3.2.2 在前台启动放入后台的进程(通过后台进程名)
# fg %<background process name>

(注意:只有后台进程名唯一时此操作才有效)

3.3 杀死放入后台的进程

3.3.1 杀死放入后台的进程(通过后台进程号)
# kill %<background process number>

(补充:这里可以配合各种 kill 选项进行操作,例如 kill -9)

3.3.2 杀死放入后台的进程(通过后台进程名)
# kill %<background process name>

(注意:只有后台进程名唯一时此操作才有效)

(补充:这里可以配合各种 kill 选项进行操作,例如 kill -9)

[命令] Linux 命令 systemctl (程序单元启动和管理)

内容一:受 systemctl 管理的单元列表

1.1 受 systemctl 管理的所有单元列表

1.1.1 列出所有 systemctl 可用单元以及是否开机自启
# systemctl list-unit-files

(补充:所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的)

1.1.2 列出所有 systemctl 正在运行的单元
# systemctl list-units

(补充:所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的)

1.1.3 列出所有 systemctl 运行失败的单元
# systemctl --failed

(补充:所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的)

1.2 受 systemctl 管理的目标单元列表

1.2.1 列出所有受 systemctl 管理的目标单元
# systemctl list-units --all --type target


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.2.2 列出所有正在运行的受 SYSTEMCTL 管理的目标单元
# systemctl list-units --typer=target --state=running


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.2.3 列出所有开机自启的受 SYSTEMCTL 管理的目标单元
# systemctl list-units --all --type=target --state=active


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.2.4 列出所有开机不自启的受 SYSTEMCTL 管理的目标单元
# systemctl list-units --all --type=target --state=inactive


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3 受 systemctl 管理的目标单元列表

1.3.1 列出所有受 systemctl 管理的服务单元
# systemctl list-units --all --type service


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3.2 列出所有正在运行的受 systemctl 管理的服务单元
# systemctl list-units --typer=service --state=running


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3.3 列出所有开机自启的受 systemctl 管理的服务单元
# systemctl list-units --all --type=service --state=active


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3.4 列出所有开机不自启的受 systemctl 管理的服务单元
# systemctl list-units --all --type=service --state=inactive


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

内容二:单元的状态显示

2.1 单元的状态显示 (按标准格式显示)

# systemctl status <unit>


补充:
1) systemctl 的主要状态项有:
Loaded 单元是否已被内存加载
Active 单元是否已成功运行
Main PID 单元主进程的 PID 号
Status 单元的其他相关信息

2) Active 状态项的参数有:
loaded 单元文件已经处理
active(running) 单元正在运行
active(exited)已完成单元的一次性配置
active(waiting)正在等待启动
inactive 没有启动
enabled 将在系统启动时自动启动
disabled 不会在系统启动时自动启动
static 可以被其他单元启动

3) 单元既可以是服务单元也可以是目标单元

2.2 单元的状态显示 (显示所有内容)

# systemctl status -l <unit>


补充:
1) systemctl 的主要状态项有:
Loaded 单元是否已被内存加载
Active 单元是否已成功运行
Main PID 单元主进程的 PID 号
Status 单元的其他相关信息

2) Active 状态项的参数有:
loaded 单元文件已经处理
active(running) 单元正在运行
active(exited)已完成单元的一次性配置
active(waiting)正在等待启动
inactive 没有启动
enabled 将在系统启动时自动启动
disabled 不会在系统启动时自动启动
static 可以被其他单元启动

3) 单元既可以是服务单元也可以是目标单元

内容三:单元的启动管理

3.1 启动某 1 个单元

# systemctl start <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.2 停止某 1 个单元

# systemctl stop <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.3 重启某 1 个单元

# systemctl restart <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.3 显示某 1 个单元是否正在运行

3.3.1 使用 is-active 参数显示某个单元是否正在运行
# systemctl is-active <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.3.2 使用 list-unit-files 参数显示某个单元是否正在运行
3.3.2.1 使用 list-unit-files 参数显示某个单元是否正在运行的格式
3.3.2.1.1 显示某个 systemctl 的服务在 systemctl 中的文件名的格式
# ll /usr/lib/systemd/system/<unit>
3.3.2.1.2 显示某个 systemctl 文件名的状态的格式
# systemctl list-unit-files | grep ^<file name>
3.3.2.2 使用 list-unit-files 参数显示某个单元是否正在运行的案例
3.3.2.2.1 显示某个 systemctl 的服务在 systemctl 中的文件名的案例
# ll /usr/lib/systemd/system/ctrl-alt-del.target
lrwxrwxrwx 1 root root 13 May 19 06:56 /usr/lib/systemd/system/ctrl-alt-del.target -> reboot.target


补充:
1) 这里以显示 systemctl 的 ctrl-alt-del.target 服务在 systemctl 中的文件名为例
2) 从这里的输出结果可以看出 systemctl 的 ctrl-alt-del.target 服务在 systemctl 中的文件名为 reboot.target

3.3.2.2.2 显示某个 systemctl 文件名的状态的案例
# systemctl list-unit-files | grep ^reboot.target
reboot.target                                                             disabled        disabled

(补充:这里以显示 systemctl 的 reboot.target 文件名为例)

3.4 启动并将某 1 个单元设置为开机自启

# systemctl enable --now <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.5 停止并将某 1 个单元取消开机自启

# systemctl disable --now <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

内容四:单元的开机自启管理

4.1 让某一个单元开机自启

# systemctl enable <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

4.2 取消某一个单元的开机自启

# systemctl disable <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

4.3 显示某一个单元是否是开机自启

# systemctl is-enabled <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

内容五:单元的锁定管理

5.1 锁定某一个单元(禁止其启动)

# systemctl mask <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

5.2 取消某一个单元的锁定(让它可以启动)

# systemctl umask <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

内容六:重新加载某 systemctl 的配置文件

# systemctl daemon-reload