美文网首页jouypub.com
Linux上重启服务的正确命令

Linux上重启服务的正确命令

作者: JouyPub | 来源:发表于2018-08-04 12:29 被阅读1次

在开发环境下,我们经常需要部署代码,重启服务,所以会把命令写在脚本中,方便使用。

我们可能这么写

#!/bin/bash

ps -ef | grep backend-api-1.0 | grep -v "\-\-color" |awk '{print $2}' |xargs kill -9
sleep 1
nohup java -jar backend-api-1.0.jar >> backend-api.log 2>&1 &
tail -f backend-api.log

这个脚本看似没问题,可执行时,会出现kill: 向 PID 发送信号失败: 没有那个进程的错误,但是服务仍然能正常重启,也就是ps -ef | grep backend-api-1.0 | grep -v "\-\-color"这个命令并没有把当前执行进程过滤掉。

正确写法是:取项目名中的两个不同的单词,用两次grep,而不是用grep -v,如下

#!/bin/bash

ps -ef | grep backend | grep api |awk '{print $2}' |xargs kill -9
sleep 1
nohup java -jar backend-api-1.0.jar >> backend-api.log 2>&1 &
tail -f backend-api.log

相关文章

网友评论

    本文标题:Linux上重启服务的正确命令

    本文链接:https://www.haomeiwen.com/subject/qmxmvftx.html