Linux进程管理之结束与进程名称相匹配的进程(sh脚本)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgd2010.blog.51cto.com/1539422/1554623

在Linux系统中经常会遇到结束某个进程的情况,一般我们会使用kill、pkill、killall甚至top这样的工具结束进程,但这些工具虽然是结束进程的基本工具,但使用起来要接进程名全名或准确的pid。下文提供的脚本可以结束与指定的进程名称相匹配的任意进程(杀死指定名称的进程),如果匹配的pid有两个及其以上,kill也能处理掉,设计这个功能的工程师实在是太高明了!赞!


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

#!/bin/bash

pname=$1

puser=$2

 

if [[ -z $pname ]]; then

echo "Fatal error, you MUST assign a process name"

exit 1

fi

 

if [[ "$1" == "-h" ||  "$1" == "--help" ]]; then

echo "Func: This shell script will find the process you want to kill with signal 9, process name support regular expression with 'grep'\n"

echo "Usage: $0 processname\n"

echo "Example: $0 run, this will kill all process which match 'run'\n"

exit 0

fi

 

if [[ -z $puser ]]; then

puser=root

fi

 

pid=`ps aux | grep $pname | grep $puser | grep -v grep awk '{print $2}'`

 

if [[ -z $pid ]]; then

    echo ":(, I can NOT find $pname running by $puser"

fi

 

# There maybe exist bugs refer to $pid have more than one pid, such as 2 or more

# So there is a TODO to fix it,

# But kill utility support kill pids which more than one, :)

 

kill -9 $pid >/dev/null 2>&1

# eof

# because of kill will exit automatically

reval=$?

 

vpid=`ps aux | grep $pname | grep $puser | grep -v grep awk '{print $2}'`

 

if [[ -z $vpid && $reval -eq 0 ]]; then

    echo ":(, Failed, I can NOT kill $pname running by $puser, got an error code $reval"

else 

    echo ":), Successfully,I killed $pname running by $puser"

fi

测试用脚本,此脚本会借助nohup this >/dev/null 2>&1 & 一直运行,this表示你想命名的名字,别忘了chmod +x this。


1

2

3

4

5

6

#!/bin/bash

while :

do

#sleep 2 second

usleep 2000

done

end

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1554623

时间: 2024-09-13 05:48:06

Linux进程管理之结束与进程名称相匹配的进程(sh脚本)的相关文章

基于Python 的进程管理工具supervisor使用指南_python

Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2.4 以上版本,但是还无法运行在 Python 3 上,不过已经有一个 Python 3 的移植版 supervisor-py3k. 什么情况下我们需要进程管理呢?就是执行一些需要以守护进程方式执行的程序,比如一个后台任务,我最常用的是用来启动和管理基于 Tornado 写的 Web 程序. 除此之

Win7系统巧用Windows进程管理器

  Windows进程管理器是一款功能比较强大的进程管理工具,可以进程查询.进程管理,包括结束进程.暂停进程.恢复进程.删除进程等,还可以进行端口访问查询.查看系统性能信息等. 1.进程管理 在win7系统中运行该软件,主界面将所有功能分为了进程管理.端口监听.系统信息三大部分:软件对进程的管理和允许用户对进程的操作等非常全面.对于每一个进程,用户除了可以查看其详细进程信息外,用户还可以随时结束指定进程和删除指定进程. 在对进程操作方面,该软件非常有特色:首先是"暂停进程"功能,这一功

【操作系统】2、进程管理与死锁

1.进程 所谓进程,可以认为是一个程序及其正在运行的过程.相对来说,程序是一个静态的概念,而进程是一个动态的概念,更加强调程序运行的过程和状态.一般一个进程至少要包含几个内容,即程序代码.程序处理的数据.CPU寄存器的值.堆和栈以及进程所占用的系统资源. 进程的概念所以和程序相区分,关键在于进程具有三个特性,即动态性.独立性和并发性.所谓动态性,指的是进程表示动态执行的程序,每时每刻进程的状态都是在变化的,例如CPU寄存器的值.堆栈中的数据等.所谓独立性,指的是进程和进程之间一般不会相互影响,每

Nginx使用的php-fpm的两种进程管理方式及优化_nginx

PS:前段时间配置php-fpm的时候,无意中发现原来它还有两种进程管理方式.与Apache类似,它的进程数也是可以根据设置分为动态和静态的. php-fpm目前主要又两个分支,分别对应于php-5.2.x的版本和php-5.3.x的版本.在5.2.x的版本中,php-fpm.conf使用的是xml格式,而在新的5.3.x版本中,则是和php.ini一样的配置风格. 在5.2.x版本中,php-fpm.conf中对于进程管理号称是有两种风格,一种是静态(static)的,一种是类似于apache

分布式系统部署、监控与进程管理的几重境界

约定:本文只考虑 Linux 系统,文中涉及的"服务程序"是以 C++ 或 Java 编写,编译成二进制可执行文件(binary 或 jar),程序启动的时候一般会读取配置文件(或者以其他方式获得配置信息),同一个程序每个服务进程的配置文件可能略有不同."服务器"这个词有多重含义,为避免混淆,本文以 host 指代服务器硬件,以"服务端程序/进程"指代服务器软件(或者具体说 Web Server 和 Sudoku Solver,这两个都是服务软件

Linux 进程管理剖析(创建、管理、调度和销毁)

Linux 是一种动态系统,能够适应不断变化的计算需求.Linux 计算需求的表现是以进程 的通用抽象为中心的.进程可以是短期的(从命令行执行的一个命令),也可以是长期的(一种网络服务).因此,对进程及其调度进行一般管理就显得极为重要. 在用户空间,进程是由进程标识符(PID)表示的.从用户的角度来看,一个 PID 是一个数字值,可惟一标识一个进程.一个 PID 在进程的整个生命期间不会更改,但 PID 可以在进程销毁后被重新使用,所以对它们进行缓存并不见得总是理想的. 在用户空间,创建进程可以

linux那点事儿(六)----进程管理详解(推荐)

目录:(内容较多,加个目录) |-进程管理  进程常用命令 |- w查看当前系统信息 |- ps进程查看命令 |- kill终止进程 |- 一个存放内存中的特殊目录/proc |- 进程的优先级 |- 进程的挂起与恢复 |- 通过top命令查看进程 计划任务 |- 计划任务的重要性 |- 一次性计划at和batch |- 周期性计划crontab 进程管理的概念                                                                    

LINUX(十一)Linux进程管理及作业控制

        Linux是一个多任务的操作系统,系统上同时运行着多个进程,正在执行的一个或多个相关进程称为一个作业.使用作业控制,用户可以同时运行多个作业,并在需要时在作业之间进行切换.本章详细介绍进程管理及作业控制的命令,包括启动进程.查看进程.调度作业的命令. 进程及作业的概念 Linux是一个多用户多任务的操作系统.多用户是指多个用户可以在同一时间使用计算机系统:多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务. 操作系统管理多个用户的请求和多个任务

初探Linux进程管理机制

转至:http://ixdba.blog.51cto.com/2895551/543737 一 .进程的概念和分类1.进程的概念 Linux是一个多用户多任务的操作系统.多用户是指多个用户可以在同一时间使用同一个linux系统:多任务是指在Linux下可以同时执行多个任务,更详细的说,linux采用了分时管理的方法,所有的任务都放在一个队列中,操作系统根据每个任务的优先级为每个任务分配合适的时间片,每个时间片很短,用户根本感觉不到是多个任务在运行,从而使所有的任务共同分享系统资源,因此linux