首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash脚本中,杀死命令不能正常工作

在bash脚本中,杀死命令不能正常工作
EN

Stack Overflow用户
提问于 2017-02-21 08:02:17
回答 1查看 582关注 0票数 1

我正在运行一个ubuntu控制台,当我输入以下命令时,所有的进程都会被完全杀死。

代码语言:javascript
复制
kill -9 $(ps -ef | grep 'job1/' | grep -v grep| awk '{print $2}')

但是,当我试图使用crontab常规调用脚本时,事情出了问题。

代码语言:javascript
复制
#!/bin/bash
pid=$(ps -ef | grep 'job1/' | grep -v grep | awk '{print $2}')
echo $pid
kill -9 $pid
# the following commands were never executed
sleep 5
/data/job1/tomcat8/bin/startup.sh

结果是这样的:

代码语言:javascript
复制
15432 15438
Killed

它似乎刚刚结束了作业,但不会执行以下命令。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 09:18:27

如果您要创建一个脚本,kill的事情通过PID,那么您需要非常小心,以杀死正确的东西。

您已经有了grep -v grep来避免杀死grep本身,但是您似乎还没有投入任何保护来防止脚本本身的破坏。既然你知道你自己的PID,你可以grep -v,但是如果你是123,而你想要杀死的东西之一是1234呢?用脚本的名字可能更安全。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42361703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档