查看firefox的进程ID:
ps -ef | grep firefox
或者
top | grep firefox
使用kill指令来终止进程:
kill -s 9 进程ID // -s 9表示发送给进程的信号是9(SIGKILL);
根据进程的名字来终止进程:
pgrep firefox | xargs kill -s 9 // pgrep的p表明了这个命令是专门用于进程查询的grep, 该指令直接输出进程id.
// xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数.
Kill命令:
在Shell下面输入kill可以看到kill的语法如下,
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
-s 指定发送的信号,sigspec表示信号
pid是要终止的进程编号
通过kill -l可以看到所有的信号变量:
kill pid和kill -s 15 pid等价,表示发送一个SIGTERM的信号给对应的进程。
大部分程序在接收到SIGTERM信号后,会先释放自己的资源,然后再停止。但也有一些程序在收到信号后,做一些其他事情,并且这些事情是可以配置的。
kill -9 pid等于kill -s 9 pid,发送给进程的信号是9(SIGKILL),表示强制,尽快终止一个进程。
==================
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME
进程终止信号:
SIGTERM:该信号可由进程捕获,使用该信号让进程有机会在退出之前做好清理工作,从而优雅地终止。
SIGINT:当用户按下中断键(一般采用delete或ctrl + c)时,终端驱动程序产生此信号并发送至前台进程组中的每一个进程。
SIGKILL: 该信号不能被进程捕捉和忽略,它向系统管理员提供了一种可靠地杀死任何进程的方法。
在terminal里面用ctrl+C终止一个进程时,向进程发送的是SIGINT信号。 ctrl-z 发送 SIGTSTP 信号给进程,常用于挂起一个进程。
写一个脚本用来启动动或停止程序:
#!/bin/sh
# first
cd /home/xxx/xxx/ #可执行文件所在的目录
echo "================"
param=$1 #执行脚本时传入的参数
echo $1
echo $param
if [ "start" = $param ] #传入的参数为start的话,开始执行;注意,[前后要有空格
then
./exe1 &
./exe2 &
sleep 3s #睡眠3s
./exe3 &
echo "========st========="
fi
if [ "stop" = $param ] #传入的参数为stop的话,kill掉进程
then
pgrep exe1| xargs kill -s 9
pgrep exe2 | xargs kill -s 9
pgrep exe3 | xargs kill -s 9
echo "========end========="
fi
exit 0
编辑完脚本文件后,chmod +x filename,使其可执行,然后,进入脚本所在目录,在terminal输入 ./filename start启动exe, 输入./filename stop 终止进程。
查看进程:ps命令介绍
可以用man ps查看使用方法,只不过是一个小工具而已!
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A 显示所有程序。
ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e 此参数的效果和指定"A"参数相同。
ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H 显示树状结构,表示程序间的相互关系。
ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s 采用程序信号的格式显示程序状况。
ps S 列出程序时,包括已中断的子程序资料。
ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。
ps -o 说明用户自定义格式
最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
ps aux | grep program_filter_word
例如: ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。
Ref:
http://www.cnblogs.com/grefr/p/6095059.html
https://blog.csdn.net/Post_Yuan/article/details/53065473