进程和计划任务管理

 程序和进程的关系

程序

  • 保存在硬盘,光盘等介质中的可执行代码和数据
  • 文件中静态保存的代码       

 进程

  • 在cpu内存中运行和程序代码
  • 动态执行代码
  • 父子进程
  • 每个程序可以创建一个或多个进程

 ps命令(静态查看进程统计信息)

ps -aux

   a:显示当前终端下所有进程信息,包含其他用户进程。与“x”选项结合时显示系统中所有进程信息
   u:使用以用户为主的格式输出进程信息
   x:显示当前用户在所有终端下的进程信息
   -e:显示系统内的所有进程信息
   -l:使用长格式显示进程信息
   -f:使用完整的格式显示进程信息
[root@localhost ~]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 193804  6868 ?        Ss   11:08   0:01 /usr/lib/systemd/systemd --switched-root --system --des
root          2  0.0  0.0      0     0 ?        S    11:08   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    11:08   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   11:08   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    11:08   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    11:08   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        R    11:08   0:00 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   11:08   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    11:08   0:00 [watchdog/0]
root         12  0.0  0.0      0     0 ?        S    11:08   0:00 [watchdog/1]
root         13  0.0  0.0      0     0 ?        S    11:08   0:00 [migration/1]
root         14  0.0  0.0      0     0 ?        S    11:08   0:00 [ksoftirqd/1]
root         16  0.0  0.0      0     0 ?        S<   11:08   0:00 [kworker/1:0H]
root         18  0.0  0.0      0     0 ?        S    11:08   0:00 [kdevtmpfs]

 top(动态查看进程统计信息)

op 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。

[root@localhost ~]# top
top - 14:24:50 up  3:16,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 170 total,   1 running, 169 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2028116 total,  1155932 free,   436524 used,   435660 buff/cache
KiB Swap:  2098172 total,  2098172 free,        0 used.  1357188 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                            
     1 root      20   0  193804   6868   4176 S   0.0  0.3   0:01.98 systemd                                            
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                           
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.07 ksoftirqd/0                                        
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                       
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.02 migration/0                                        
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                             
     9 root      20   0       0      0      0 S   0.0  0.0   0:00.51 rcu_sched                                          
    10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain                                      
    11 root      rt   0       0      0      0 S   0.0  0.0   0:00.05 watchdog/0                                         
    12 root      rt   0       0      0      0 S   0.0  0.0   0:00.05 watchdog/1                                         
    13 root      rt   0       0      0      0 S   0.0  0.0   0:00.01 migration/1                                        
    14 root      20   0       0      0      0 S   0.0  0.0   0:00.08 ksoftirqd/1                                        
    16 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:0H                                       
    18 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kdevtmpfs  

pgrep命令——查询进程的PID

选项

  • -U:指定用户

  • -l:显示进程名

  • -a:显示完整格式的进程名

  • -P < PID>:显示指定进程的子进程

[root@localhost ~]# pgrep -U root -l     //查询nancy用户的进程PID,并显示进程名
1 systemd
2 kthreadd
3 ksoftirqd/0

    
[root@localhost ~]# pgrep "log" -l     查询进程名称中带有"log"的进程的PID,并显示进程名称
465 xfs-log/dm-0
707 xfs-log/sda1
728 xfs-log/dm-2
801 systemd-logind
803 abrt-watch-log
806 abrt-watch-log
814 rsyslogd

[root@localhost ~]# pgrep -P 823     //查询PID为823的进程的子进程  
  846

pstree命令——以树形结构列出进程信息

格式

 pstree  [OPTION]  [ PID | USER ]    

选项

选项作用
-a列出完整的命令信息
-p同时列出相对应的PID号
-p < pid>显示指定进程及其子进程,同时显示每个进程的PID
-u列出相对应的用户名
-H < pid>高亮显示指定进程及其前辈进程
-T不显示线程thread,默认显示线程

 

示例

pstree PID,显示指定进程及其子进程

[root@localhost ~]# pstree 1
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─2*[abrt-watch-log]
        ├─abrtd
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─alsactl
        ├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon}
        │                 └─3*[{at-spi-bus-laun}]

pstree -p PID,显示指定进程及其子进程,同时显示PID

[root@localhost ~]# pstree -p 2261
tracker-store(2261)─┬─{tracker-store}(2265)
                    ├─{tracker-store}(2277)
                    ├─{tracker-store}(2278)
                    ├─{tracker-store}(2281)
                    ├─{tracker-store}(2282)
                    ├─{tracker-store}(2283)
                    └─{tracker-store}(2284)

pstree -u 用户名,显示指定用户的进程

 [root@localhost ~]# pstree -u root -p
systemd(1)─┬─ModemManager(815)─┬─{ModemManager}(838)
           │                   └─{ModemManager}(845)
           ├─NetworkManager(891)─┬─{NetworkManager}(899)
           │                     └─{NetworkManager}(903)
           ├─VGAuthService(798)
           ├─abrt-watch-log(803)
           ├─abrt-watch-log(806)
           ├─abrtd(802)
           ├─accounts-daemon(825)─┬─{accounts-daemon}(832)
           │                      └─{accounts-daemon}(853)

-a,显示启动进程的完整指令,包括启动进程的路径、参数等

[root@localhost ~]# pstree 2261 -a
tracker-store
  └─7*[{tracker-store}]

-aup,同时显示启动进程的完整指令、进程的所属用户、进程PID

[root@localhost ~]# pstree -aup
systemd,1 --switched-root --system --deserialize 21
  ├─ModemManager,815
  │   ├─{ModemManager},838
  │   └─{ModemManager},845
  ├─NetworkManager,891 --no-daemon
  │   ├─{NetworkManager},899
  │   └─{NetworkManager},903
  ├─VGAuthService,798 -s
  ├─abrt-watch-log,803 -F BUG: WARNING: at WARNING: CPU:INFO: possib
  ├─abrt-watch-log,806 -F Backtrace /var/log/Xorg.0.log --/usr/bin/a
  ├─abrtd,802 -d -s    

1、进程的启动方式

(1)手工启动

前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入按&符号

(2)调度启动

使用at命令,是指一次性计划任务
使用crontab命令,设置周期性计划任务

(3)进程的前后台调度

  1. Ctrl+Z组合键:将当期进程挂起,即调入后台并停止执行
  2. jobs -l  :查看处于后台的任务列表
  3. fg  :将后台进程恢复到前台运行,可指定任务序号

 终止进程的运行

1、Ctrl+C组合键
中断正在执行的命令
2、kill、killall命令(跟号码,具有唯一性)
常用选项:

kill:用于终止指定PID号的进程
killall:用于终止指定名称的所有进程
-9:选项用于强制终止

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值