栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux课堂篇2

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux课堂篇2

一、Linux 下的进程管理

Linux中进程调度常见命令

  • ps 查看系统中的进程
  • top 动态显示系统中的进程
  • kill 杀死进程
  • jobs 查看后台运行的进程

举栗

 ps -e //查看所有进程
 
 ps -u //显示当前用户和终端进程
 
 ps -l //长格式显示当前用户进程
 
 ps -le //长格式显示所有进程
 
 kill xxx //结束xxx进程(xxx是进程的PID)
 
 kill -9 xxx //强制结束xxx进程(xxx是进程的PID
 
[root@iZ2vc8owmlobwkazif1efpZ ~]# top
top - 14:52:36 up 3 days, 20:14,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  87 total,   1 running,  86 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1776196 total,   159964 free,   202172 used,  1414060 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1396896 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                            
 1298 root      10 -10  135364  18828  10108 S   0.7  1.1  51:48.33 AliYunDun                                          
    1 root      20   0  125500   3984   2616 S   0.0  0.2   0:04.43 systemd                                            
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd                                           
    4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                       
    5 root      20   0       0      0      0 S   0.0  0.0   0:00.80 kworker/u4:0                                       
    6 root      20   0       0      0      0 S   0.0  0.0   0:00.38 ksoftirqd/0                                        
    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:47.99 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.96 watchdog/0                                         
   12 root      rt   0       0      0      0 S   0.0  0.0   0:01.06 watchdog/1                                         
   13 root      rt   0       0      0      0 S   0.0  0.0   0:00.02 migration/1                                        
   14 root      20   0       0      0      0 S   0.0  0.0   0:00.09 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                                          
   19 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 netns                                              
   20 root      20   0       0      0      0 S   0.0  0.0   0:00.07 khungtaskd                                         
   21 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 writeback                                          
   22 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kintegrityd                                        
   23 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset                                             
   24 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset                                             
   25 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset                                             
[root@iZ2vc8owmlobwkazif1efpZ ~]# 

[root@iZ2vc8owmlobwkazif1efpZ ~]# ps -e
  PID TTY          TIME CMD
    1 ?        00:00:04 systemd
    2 ?        00:00:00 kthreadd
    4 ?        00:00:00 kworker/0:0H
    5 ?        00:00:00 kworker/u4:0
    6 ?        00:00:00 ksoftirqd/0
    7 ?        00:00:00 migration/0
    8 ?        00:00:00 rcu_bh
    9 ?        00:00:48 rcu_sched
   10 ?        00:00:00 lru-add-drain
   11 ?        00:00:00 watchdog/0
   12 ?        00:00:01 watchdog/1
   13 ?        00:00:00 migration/1
   14 ?        00:00:00 ksoftirqd/1
   16 ?        00:00:00 kworker/1:0H
   18 ?        00:00:00 kdevtmpfs
   19 ?        00:00:00 netns
   20 ?        00:00:00 khungtaskd
   21 ?        00:00:00 writeback
   22 ?        00:00:00 kintegrityd
   23 ?        00:00:00 bioset
   24 ?        00:00:00 bioset
   25 ?        00:00:00 bioset
   26 ?        00:00:00 kblockd
   27 ?        00:00:00 md
   28 ?        00:00:00 edac-poller
   29 ?        00:00:00 watchdogd
   36 ?        00:00:00 kswapd0
   37 ?        00:00:00 ksmd
   38 ?        00:00:00 khugepaged
   39 ?        00:00:00 crypto
   47 ?        00:00:00 kthrotld
   48 ?        00:00:01 kworker/u4:1
   49 ?        00:00:00 kmpath_rdacd
   50 ?        00:00:00 kaluad
   51 ?        00:00:00 kpsmoused
   52 ?        00:00:00 ipv6_addrconf
   65 ?        00:00:00 deferwq
  100 ?        00:00:00 kauditd
  238 ?        00:00:00 ata_sff
  244 ?        00:00:00 scsi_eh_0
  245 ?        00:00:00 scsi_tmf_0
  246 ?        00:00:00 scsi_eh_1
  247 ?        00:00:00 scsi_tmf_1
  249 ?        00:00:00 ttm_swap
  255 ?        00:00:00 kworker/0:1H
  266 ?        00:00:00 kworker/1:1H
  267 ?        00:00:01 jbd2/vda1-8
  268 ?        00:00:00 ext4-rsv-conver
  361 ?        00:00:01 systemd-journal
  382 ?        00:00:00 systemd-udevd
  461 ?        00:00:00 auditd
  503 ?        00:00:00 nfit
  527 ?        00:00:01 systemd-logind
  529 ?        00:00:00 polkitd
  531 ?        00:00:02 dbus-daemon
  543 ?        00:00:01 chronyd
  772 ?        00:00:00 dhclient
  827 ?        00:00:27 tuned
  947 ?        00:00:00 master
  949 ?        00:00:00 qmgr
 1044 ?        00:00:12 rsyslogd
 1048 ?        00:01:07 aliyun-service
 1052 ?        00:00:00 atd
 1053 ?        00:00:00 crond
 1059 ttyS0    00:00:00 agetty
 1060 tty1     00:00:00 agetty
 1172 ?        00:00:00 sshd
 1239 ?        00:04:16 AliYunDunUpdate
 1298 ?        00:51:52 AliYunDun
 1442 ?        00:02:32 AliSecGuard
 1568 ?        00:04:16 containerd
 1578 ?        00:00:37 dockerd
21460 ?        00:00:00 docker-proxy
21466 ?        00:00:00 docker-proxy
21481 ?        00:00:02 containerd-shim
21501 ?        00:00:00 nginx
21578 ?        00:00:00 nginx
23301 ?        00:00:00 kworker/1:0
23348 ?        00:00:00 pickup
23380 ?        00:00:00 kworker/0:2
23391 ?        00:00:00 kworker/0:0
23394 ?        00:00:00 kworker/1:1
23395 ?        00:00:00 sshd
23397 pts/0    00:00:00 bash
23429 pts/0    00:00:00 ps
[root@iZ2vc8owmlobwkazif1efpZ ~]# ps -f
UID        PID  PPID  C STIME TTY          TIME CMD
root     23397 23395  0 14:50 pts/0    00:00:00 -bash
root     23442 23397  0 15:01 pts/0    00:00:00 ps -f
[root@iZ2vc8owmlobwkazif1efpZ ~]# 


二、Linux 进程控制编程 1、fork概述

fork()基本介绍

  • 在Linux 中创建一个新进程的惟一方法是使用fork()函数。
  • fork()函数是Linux 中一个非常重要的函数,和以往遇到的函数有一些区别,因为它看起来执行一次却返回两个值。

fork()函数说明

  • fork()函数用于从已存在的进程中创建一个新进程。新进程称为子进程,而原进程称为父进程。
  • 使用fork()函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个进程的地址空间,包括进程上下文、代码段、进程堆栈、内存信息、打开的文件描述符、信号控制设定、进程优先级、进程组号、当前工作目录、根目录、资源限制和控制终端等,而子进程所独有的只有它的进程号、资源使用和计时器等。
  • 实际上,在父进程中执行fork()函数时,父进程会复制出一个子进程,而且父子进程的代码从fork()函数的返回开始分别在两个地址空间中同时运行。从而两个进程分别获得其所属fork()的返回值,其中在父进程中的返回值是子进程的进程号,而在子进程中返回0。因此,可以通过返回值来判定该进程是父进程还是子进程。
  • 同时可以看出,使用fork()函数的代价是很大的,它复制了父进程中的代码段、数据段和堆栈段里的大部分内容,使得fork()函数的系统开销比较大,而且执行速度也不是很快。
2、exec 函数族

exec 函数族说明

  • fork()函数是用于创建一个子进程,该子进程几乎复制了父进程的全部内容,但是,如何在进程中执行其他程序呢?exec函数族就提供了一个在进程中启动另一个程序执行的方法
  • exec 函数族可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新的进程替换了。另外,这里的可执行文件既可以是二进制文件,也可以是Linux下任何可执行的脚本文件。
  • 在进程中使用exec函数族的作用是使运行结果替换原有进程,所以为了避免父进程被替换掉,需要先在父进程中通过fork()函数创建子进程,然后在子进程中使用exec函数。
  • 在shell命令行执行ps命令,实际上是shell进程调用fork复制一个新的子进程,再利用exec系统调用将新产生的子进程完全替换成ps进程

在Linux 中使用exec 函数族主要有两种情况。

  • 当进程认为自己不能再为系统和用户做出任何贡献时,就可以调用exec函数族中的任意一个函数让自己重生。
  • 如果一个进程想执行另一个程序,那么它就可以调用fork()函数新建一个进程,然后调用exec函数族中的任意一个函数,这样看起来就像通过执行应用程序而产生了一个新进程(这种情况非常普遍)。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/468723.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号