关闭cassandra 或者 tomcat 的方式

方式零: 老办法

以前经常喜欢用kill -9 来关闭某些进程,

例如为了关闭 tomcat,经常食用下面的shell

ps -ef | grep tomcat | grep -v grep | awk '{print $2}' | xargs kill -9

先用 ps -ef | grep tomcat 查出tomcat相关的进程, 再使用 grep -v grep 来过滤掉grep tomcat 那个进程, 剩下的就是需要关闭的那个进程的record了,包含了多个信息片段。

那么我们使用awk 来选择 第二项, 进程id , 然后我们把需要关闭的进程id,通过xargs 命令来传递给 kill命令,这样就杀死了我们想要结束的进程,达到了关闭程序的目的。


以前觉得这种方式挺好的,不过最近看到了新的方式,原来关闭程序可以这样简单:

下面用cassandra为例来讲解怎样关闭:


方式一: pid文件方式

启动时使用: 

cassandra -p cassandra.pid

把进程id,在启动时存入到cassandra.pid文件里。


结束时使用:

pkill -F cassandra.pid


方式二:使用名称查找方式

启动时没有附加的要求,可以直接启动。

cassandra 

关闭时,使用名称查找,得到对应的进程id然后关闭,和开篇说的那种方式原理一致,但是实现更优雅。

pkill -u `id -un` -f cassandra

先使用 id -un 命令来查找到当前用户的id名字,然后通过 -u uid 来限制仅在改用户下查找。通过 -f cassandra 来查找command中包含 cassandra的进程id,然后直接关闭。

看起来是不是简单了很多。


两种方式的差别: 第一种方式稍微麻烦点,但是可以精确关闭。 第二种方式,在有多个相似名字的进程时容易误杀。



你可能感兴趣的:(linux)