shell kill 进程

杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。

首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:

# kill -pid

注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。



确定要杀死进程的PID或PPID

# ps -ef | grep httpd



以优雅的方式结束进程

# kill -l PID

-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。



TERM信号

给父进程发送一个TERM信号,试图杀死它和它的子进程。

# kill -TERM PPID



killall命令

killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。

# killall httpd



停止和重启进程

有时候只想简单的停止和重启进程。如下:

# kill -HUP PID

该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。



绝杀 kill -9 PID

同意的 kill -s SIGKILL

这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。

当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。

如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。

时间: 2024-10-13 01:18:42

shell kill 进程的相关文章

第9章:Shell脚本进程管理

第9章:Shell脚本进程管理 9.1.进程概念 理解进程概念需要先简单了解指令和程序这两个概念,进程跟指令和程序是相关联的. 什么叫指令? 指令是指示计算机执行某种操作的命令,它由一串二进制数码组成. 什么叫程序? 程序(Program)是实现计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合. 什么叫进程? 进程是正在运行的程序的实例,进程也是执行程序的具体实现过程. 指令.程序和进程三者之间的关系? 计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存

Shell 获取进程 PID

Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程,因此在获取进程 pid 上二者也有所区别. 交互式 Bash Shell 获取进程 pid #在已知进程名(name)的前提下,交互式 Shell 获取进程 pid 有很多种方法,典型的通过 grep 获取 pid 的方法为(这里添加 -v grep是为了避免匹配到 grep 进程): ps -ef | grep "name" | grep -v grep | awk '{pri

adb shell 杀进程以及端口占用,adbserver服务重启失败

linux: adb shell  ps |grep  netease 杀进程: adb shell kill [PID] //杀死进程 C:\Users\chenquan>adb shell psUSER PID PPID VSIZE RSS WCHAN PC NAMEroot 1 0 428 240 c01c0a90 08054ac6 S /initroot 2 0 0 0 c013a8a6 00000000 S kthreaddroot 3 2 0 0 c0128d84 00000000

shell获取进程ID的方法: pidof | pgrep | ps-A+grep+awk

shell获取进程ID的方法: 我知道和实践过的有这么三种: ps -A |grep "cmdname"| awk '{print $1}' pidof "cmdname" pgrep "cmdname" 这三种在bash和busybox ash里面的运行结果稍有不同, 第一种完全相同,但是因为调用命令次数较多,性能上是不行的. 第二种: pidof 只能获取程序的文件名匹配到的进程号,在ash中 比如 pidof "usr/bin/t

Linux之Kill进程的N种方法

常规篇: 首先,用ps查看进程,方法如下: $ ps -ef -- smx       1822     1  0 11:38 ?        00:00:49 gnome-terminal smx       1823  1822  0 11:38 ?        00:00:00 gnome-pty-helper smx       1824  1822  0 11:38 pts/0    00:00:02 bash smx       1827     1  4 11:38 ?    

批量kill进程

最近做项目,要一下子开启50个进程,一个个去kill效率很低,利用下面这条指令就很快了: 1 ps -ef|grep Timer|grep -v grep|cut -c 9-15|xargs kill -9 ps -ef|grep name,选取所有带name的进程 grep -v grep,去除结果中带grep的进程 cut -c 9-15,取第9~15个字符,也就是pid xargs kill -9,xargs把前面的输入当做kill -9之后的参数 我们可以做一个实验: 启动11个进程:

Shell:进程的层级关系

[[email protected] ~]$ ps -ef | grep initroot 1 0 0 Apr24 ? 00:08:25 init [3] [[email protected] ~]$ ps -ef | head -n 1UID PID PPID C STIME TTY TIME CMD 第二三列分别是当前进程ID,父进程ID P1:0号进程fork出1号root权限的init进程,1号(注:0号进程是系统启动的第一个进程,它是所有其它进程的祖先,进程成为孤儿进程后会被0号进程接

adb shell 杀进程 杀包名

试了那么多个,假设使用pid的话非常好办(adb shell kill pid),只是假设仅仅有包名的话或者你的pid常常变化(实际上pid开机后或者你的app关闭后就会发生变化),能够使用下面方法: adb shell am force-stop com.taobao.taobao //后面跟的是包名

Linux下查看端口,强制kill进程

1.查看8088端口被哪个进程占用:netstat -apn | grep 8088 2.强制kill某一进程:kill -s 9 1827 Linux下查看端口,强制kill进程