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
评论区