linux 远程杀掉进程 2022-07-13 14:10 217阅读 0赞 ## 第一步:获取进程号 ## pid=$(ssh root@$remote_host "ps -ef | grep ${tomcat_name} | grep -v grep | awk '{print $2}'"| awk '{print $2}') ## 第二步:杀掉进程 ## ssh root@$remote_host "kill -9 ${pid}" ## 注意: ## 杀掉远程进程跟杀掉本地进程不一样,杀掉本地进程只需要一句话就可以搞定了: ps -ef | grep ${tomcat_name} | grep -v grep | awk '{print $2}'|xargs kill -9 但是杀掉远程的进程不一样,因为**过滤的结果会被整体返回**,如果在远程执行这个杀掉进程的命令: ssh root@$remote_host "ps -ef | grep ${tomcat_name} | grep -v grep | awk '{print $2}' | xargs kill -9" 你会得到错误的提示: kill process java -jar tomcat-8081 kill: can't find process "root" kill: can't find process "09:42" kill: can't find process "?" kill: can't find process "00:00:44" kill: can't find process "/opt/tools/jdk1.7.0_67/bin/java" kill: can't find process "-Djava.util.logging.config.file=/opt/tools/tomcat-8081/conf/logging.properties" kill: can't find process "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" kill: can't find process "-Ddisconf.env=rd" kill: can't find process "-Ddisconf.conf_server_host=192.168.100.15:8015" kill: can't find process "-Ddisconf.app=ync365" kill: can't find process "-Ddisconf.version=1.0.0" kill: can't find process "-Ddisconf.user_define_download_dir=./classes" kill: can't find process "-Ddisconf.enable.remote.conf=true" kill: can't find process "-Djdk.tls.ephemeralDHKeySize=2048" kill: can't find process "-Djava.endorsed.dirs=/opt/tools/tomcat-8081/endorsed" kill: can't find process "-classpath" kill: can't find process "/opt/tools/tomcat-8081/bin/bootstrap.jar:/opt/tools/tomcat-8081/bin/tomcat-juli.jar" kill: can't find process "-Dcatalina.base=/opt/tools/tomcat-8081" kill: can't find process "-Dcatalina.home=/opt/tools/tomcat-8081" kill: can't find process "-Djava.io.tmpdir=/opt/tools/tomcat-8081/temp" kill: can't find process "org.apache.catalina.startup.Bootstrap" kill: can't find process "start" 这是因为你执行的远程命令会返回如下结果: root 7314 1 7 09:51 pts/0 00:00:17 /opt/tools/jdk1.7.0_67/bin/java -Djava.util.logging.config.file=/opt/tools/apache-tomcat-7.0.70/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/opt/tools/apache-tomcat-7.0.70/endorsed -classpath /opt/tools/apache-tomcat-7.0.70/bin/bootstrap.jar:/opt/tools/apache-tomcat-7.0.70/bin/tomcat-juli.jar -Dcatalina.base=/opt/tools/apache-tomcat-7.0.70 -Dcatalina.home=/opt/tools/apache-tomcat-7.0.70 -Djava.io.tmpdir=/opt/tools/apache-tomcat-7.0.70/temp org.apache.catalina.startup.Bootstrap start 然后 xargs kill -9 会把上面的所有的空格隔开的进程给删除一遍,实际上他们根本不是进程,只是一个进程下面返回的描述而已,我们真正需要的进程号是第二个 7314 这个进程,因此我们需要把返回的字符串再次过滤一遍,这样就能够得到真正的进程号了。 文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。
相关 Ubuntu下杀掉进程 慕课视频: [https://blog.csdn.net/xudailong\_blog/article/details/82909611][https_blog.csd 墨蓝/ 2021年09月14日 16:04/ 0 赞/ 274 阅读
相关 如何杀掉mysql进程 用来杀掉卡死的进程。 1、首先用命令show processlist,显示正在运行的进程。 2、用kill 命令id,杀掉卡死的进程。命令id可以从show process 古城微笑少年丶/ 2021年12月16日 19:01/ 0 赞/ 122 阅读
相关 mac查看进程与杀掉进程 [mac查看进程与杀掉进程][mac] 查看进程占用 lsof -i tcp:8080 该命令会显示占用8080端口的进程,有其 pid ,可以通过pid关掉该进程 柔情只为你懂/ 2022年03月08日 18:38/ 0 赞/ 236 阅读
相关 Linux上无法杀掉redis进程 在Linux上,如果开了redis的守护进程,kill -9和redis-cli shutdown 命令是无法杀掉 redis 进程的 ,杀掉就会重新启动一个新的进程 男娘i/ 2022年04月21日 23:20/ 0 赞/ 381 阅读
相关 mysql数据库杀掉堵塞进程 mysql>SHOW PROCESSLIST;查看进程; mysql>KILL ID;杀掉进程; 这是杀掉单一进程,一个一个解决起来太麻烦; 批量解决,导出到文件, 清疚/ 2022年05月31日 18:44/ 0 赞/ 202 阅读
相关 查看并杀掉tomcat进程 启动tomcat: 一般是执行tomcat/bin/startup.sh,sh tomcat/bin/startup.sh 停止tomcat: 一般是执行 sh tomc 曾经终败给现在/ 2022年06月12日 08:18/ 0 赞/ 114 阅读
相关 linux 远程杀掉进程 第一步:获取进程号 pid=$(ssh root@$remote_host "ps -ef | grep ${tomcat_name} | grep -v gre 布满荆棘的人生/ 2022年07月13日 14:10/ 0 赞/ 218 阅读
相关 批量杀掉进程 有时候因为一些情况,需要把 linux 下符合某一项条件的所有进程 kill 掉,又不能用 killall 直接杀掉某一进程名称包含的所有运行中进程(我们可能只需要杀掉其中的某 我会带着你远行/ 2022年08月01日 09:18/ 0 赞/ 64 阅读
相关 linux进程被杀掉,oom是什么? Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽 悠悠/ 2022年08月31日 13:56/ 0 赞/ 34 阅读
相关 Linux 杀掉所有Java进程 目录 一、 Linux查看所有Java进程 二、 使用awk分割结果,获取PID 三、 杀死进程 kill -9 PID -------------------- ╰半橙微兮°/ 2022年11月01日 22:00/ 0 赞/ 29 阅读
还没有评论,来说两句吧...