Linux上重启服务的正确命令
在开发环境下,我们经常需要部署代码,重启服务,所以会把命令写在脚本中,方便使用。 我们可能这么写 #!/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}' |xar...

