Linux 基础 - 进程管理

Linux 进程管理

进程表示程序的一次执行过程,可以简单的理解为操作系统当前运行的程序

所有进程都可能存在 3 种状态:运行态、就绪态、阻塞态

  • 运行态表示程序当前实际占用着 CPU 等资源
  • 就绪态是指除 CPU 以外的一切运行资源都已经就绪,等待操作系统分配 CPU 资源,只要分配 CPU 资源,即可立即运行
  • 阻塞态是指程序在运行过程中由于需要请求外部资源 (例如 I/O 资源等) 而无法继续执行,从而主动放弃当前 CPU 资源而等待所请求资源

进程之间存在互斥和同步关系。互斥就是进程不能同时运行,必须等待一个进程运行完毕,另一个进程才能运行。进程的同步指的是进程之间通过某种通讯机制实现信息交互

程序是对一系列动作执行过程的描述,只是指令的有序集合,是一个静态的概念。

进程是动态的,是程序以及数据在计算机上的一次执行,程序存储在存储介质上,进程运行在内存中

查看进程:ps、top

[root@localhost ~]# ps 参数

# -A 列出所有进程,和 -e 有同样效果
# -a 列出所有不和本终端有关的进程
# -w 显示加宽 可以显示更多信息
# -u 显示有效使用者相关进程
# aux 显示所有包含其他使用者的进程

[root@localhost ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.3 128156  6832 ?        Ss   13:28   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    13:28   0:00 [kthreadd]

......(此处省略大部分)......

root      2615  0.0  0.1 155472  1856 pts/0    R+   14:30   0:00 ps aux

# USER 进程使用者
# PID pid
# %CPU 占用的 CPU 使用率
# %MEM 占用的内存使用率
# VSZ 占用的虚拟内存大小
# RSS 占用内存大小
# TTY 运行的终端号码
# STAT 进程状态 D:不可中断,R:运行中,S:休眠,T:暂停,Z:僵尸进程,W:没有足够的内存可分配,<:高优先级进程,N:低优先级进程
# START 进程开始时间
# TIME 累计 CPU 使用时间
# COMMAND 执行的命令

ps 用于查看查询状态下进程瞬间的信息,top 用于及时动态查看进程

top - 14:37:06 up  1:08,  1 user,  load average: 0.00, 0.01, 0.04
Tasks: 108 total,   1 running, 107 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.7 si,  0.0 st
KiB Mem :  1816460 total,   184372 free,  1342644 used,   289444 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   320252 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    1 root      20   0  128156   6832   4176 S  0.0  0.4   0:01.33 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd

......(此处省略大部分)......

   60 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 deferwq
   95 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kauditd

进程的终止:kill,killall

kill pid 即可终止进程

需要先使用 ps 查看进程

[root@localhost home]# ps -ef | grep python
root       775     1  0 13:28 ?        00:00:00 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
root      1097     1  0 13:28 ?        00:00:00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      2672     1  0 14:42 ?        00:00:00 python a.py
root      2674  1653  0 14:43 pts/0    00:00:00 grep --color=auto python

终止 2672 进程

[root@localhost home]# kill 2672
[root@localhost home]# ps -ef | grep python
root       775     1  0 13:28 ?        00:00:00 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
root      1097     1  0 13:28 ?        00:00:00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      2700  1653  0 14:45 pts/0    00:00:00 grep --color=auto python

kill 后可以加信号代码

[root@localhost home]# kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

查询进程打开的文件:lsof

如果没有 lsof 需要先安装 yum -y install psof

[root@localhost home]# lsof
COMMAND    PID  TID    USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd      1         root  cwd       DIR              253,0       251         96 /
systemd      1         root  rtd       DIR              253,0       251         96 /
systemd      1         root  txt       REG              253,0   1628608     396831 /usr/lib/systemd/systemd

......(此处略去 99.9% 的内容)......

lsof      2766         root  mem       REG              253,0    163312      34799 /usr/lib64/ld-2.17.so
lsof      2766         root    4r     FIFO                0,9       0t0      28399 pipe
lsof      2766         root    7w     FIFO                0,9       0t0      28400 pipe
[root@localhost home]# lsof /var/log/messages
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
rsyslogd 1100 root    6w   REG  253,0   295260 16785274 /var/log/messages

-i 查看端口进程

[root@localhost home]# lsof -i:22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1098 root    3u  IPv4  19251      0t0  TCP *:ssh (LISTEN)
sshd    1098 root    4u  IPv6  19260      0t0  TCP *:ssh (LISTEN)
sshd    1649 root    3u  IPv4  20764      0t0  TCP localhost.localdomain:ssh->DESKTOP-9L9JKNP.mshome.net:61885 (ESTABLISHED)

进程优先级调整:nice、renice

nice -n -10 ./job.sh

对于已经启动的进程

renice -10 -p 5555

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值