《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


相关文章
|
3月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
193 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
4月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
15天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
2月前
|
存储 Shell Linux
Linux 如何更改默认 Shell
Linux 如何更改默认 Shell
49 0
Linux 如何更改默认 Shell
|
3月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
83 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
2月前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
2月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
3月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
120 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
3月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
94 1
|
4月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余