Linux常用命令之进程管理

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

ps命令——查看进程


查看当前时刻进程信息。

选项

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

操作:

1、输出每个进程信息

[root@harbor ~]# ps -efUID         PID   PPID  C STIME TTY          TIME CMDroot          1      0  0 12月25 ?      00:00:57 /usr/lib/systemd/systemd --switched-root --system --deserialize 22root          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语法显示每个进程信息

[root@harbor ~]# ps aux

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指定要发送的信号

操作:

显示系统的所有信号

[root@localhost ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+338) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+843) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+1348) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-1253) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-758) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62)

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

[root@localhost ~]# netstat -lntup
Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1353/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1473/master tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 945/rpcbind [root@localhost ~]# kill -9 1473
[root@localhost ~]# netstat -lntup   #再次查看没有进程号为1473的进程。
Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1353/sshd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 945/rpcbind [root@localhost ~]#

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


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

交互式选项

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

nohup命令——后台运行进程


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

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

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

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

[root@localhost ~]# nohup ping 172.16.1.20 &
[2] 109057
[root@localhost ~]#
nohup: 忽略输入并把输出追加到"nohup.out"

[root@localhost ~]# ps -ef |grep ping

root 109057 93226 0 10:45 pts/0 00:00:00 ping 172.16.1.20
root 109329 93226 0 10:45 pts/0 00:00:00 grep --color=auto ping
注意:以上示例是为了测试,测试完后要kill掉,不然一直生成日志,占用磁盘空间。
[root@localhost ~]# kill -9 109057

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


[root@localhost ~]# runlevelN 
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
# 列出已安装的unitsystemctl 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

此条目发表在未分类分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注