《Linux Shell脚本攻略》 笔记 第九章:进程管理

简介: 《Linux Shell脚本攻略》 笔记

第九章:进程管理

1、打印进程

[root@localhost program_test]# ps -e | head
  PID TTY          TIME CMD
    1 ?        00:00:03 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 migration/0
    4 ?        00:00:00 ksoftirqd/0
    5 ?        00:00:00 migration/0
    6 ?        00:00:00 watchdog/0
    7 ?        00:00:00 events/0
    8 ?        00:00:00 cgroup
    9 ?        00:00:00 khelper

2、top 占用CPU最多的进程列表

[root@localhost program_test]# top
top - 23:45:17 up  1:12,  5 users,  load average: 0.00, 0.00, 0.00
Tasks: 153 total,   1 running, 143 sleeping,   9 stopped,   0 zombie
Cpu(s):  0.3%us,  0.3%sy,  0.0%ni, 99.0%id,  0.0%wa,  0.3%hi,  0.0%si,  0.0%st
Mem:   1030528k total,   377184k used,   653344k free,    32588k buffers
Swap:  2064376k total,        0k used,  2064376k free,   170968k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                  
4429 root      20   0  2704 1140  880 R  0.7  0.1   0:00.12 top                                                                                                      
   21 root      20   0     0    0    0 S  0.3  0.0   0:01.63 ata_sff/0                                                                                                
2462 yy       20   0 73100  23m  18m S  0.3  2.3   0:12.11 vmtoolsd                                                                                                 
    1 root      20   0  2900 1436 1212 S  0.0  0.1   0:03.10 init      

3、列出占CPU最多的进程

[root@localhost program_test]# ps -eo comm,pcpu --sort -pcpu | head
COMMAND         %CPU
Xorg             0.5
vmtoolsd         0.2
vmtoolsd         0.2
init             0.0
kthreadd         0.0
migration/0      0.0
ksoftirqd/0      0.0
migration/0      0.0
watchdog/0       0.0

4、打印出bash进度对应的pid

[root@localhost program_test]# ps -C bash -o pid=
2624
2650
2696
2732
2759
3842

//与下面的命令等价
[root@localhost program_test]# ps -aux | grep bash | awk 'BEGIN { FS=" " }  $11=="bash" { print $2 }'
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
2624
2650
2759

5、列举出用的信号:

[root@localhost program_test]# 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

6、常用信号

1)SIGHUP 1 --对控制进程和终端进行挂起检测;
2)SIGINT  2--按下Ctrl+C发送信号
3)SIGKILL 9-- 强杀进程
4)SIGTERM 15--默认用于终止进程
5)SIGTSTP 20--按下Ctrl+Z发送信号

7、通过进程名杀死进程

[yy@localhost ~]$ killall -9 su
su: no process killed

8、捕获并响应信号测试 trap

[root@localhost ~]$ cat singlehandle.sh | sed '/^$/d'
#!/bin/bash
function handler()
{
        echo Hey, received signal : SIGINT
}
echo My Process ID is $$
trap 'handler' SIGINT
while true;
do 
sleep 1
done

9、

which //找到某个命令的位置
whereis   //不仅返回命令的路径,还打印出对应命令手册的位置
file         //确定文件类型
whatis    //输出作为参数命令的简短信息
uptime   //系统可运行进程总量的平均值

10、

hostname //获取主机名
//获取分区信息
**[yy@localhost ~]$ cat /proc/partitions**
major minor  #blocks  name

   8        0   20971520 sda
   8        1     307200 sda1
   8        2   18598912 sda2
   8        3    2064384 sda3

作者:铭毅天下
转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/42364921

相关文章
|
1月前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
83 1
|
14天前
|
消息中间件 Linux
Linux:进程间通信(共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)
通过上述讲解和代码示例,您可以理解和实现Linux系统中的进程间通信机制,包括共享内存、消息队列和信号量。这些机制在实际开发中非常重要,能够提高系统的并发处理能力和数据通信效率。希望本文能为您的学习和开发提供实用的指导和帮助。
77 20
|
28天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
1月前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
108 13
|
1月前
|
SQL 运维 监控
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
|
1月前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
2月前
|
缓存 算法 Linux
Linux内核的心脏:深入理解进程调度器
本文探讨了Linux操作系统中至关重要的组成部分——进程调度器。通过分析其工作原理、调度算法以及在不同场景下的表现,揭示它是如何高效管理CPU资源,确保系统响应性和公平性的。本文旨在为读者提供一个清晰的视图,了解在多任务环境下,Linux是如何智能地分配处理器时间给各个进程的。
|
2月前
|
存储 Shell Linux
Linux 如何更改默认 Shell
Linux 如何更改默认 Shell
56 0
Linux 如何更改默认 Shell
|
2月前
|
网络协议 Linux 虚拟化
如何在 Linux 系统中查看进程的详细信息?
如何在 Linux 系统中查看进程的详细信息?
284 1
|
2月前
|
Linux
如何在 Linux 系统中查看进程占用的内存?
如何在 Linux 系统中查看进程占用的内存?

热门文章

最新文章