Linux shell脚本动态匹配th-adn-xxx.jar服务是否存在,如果存在,杀掉进程,并重启最新的进程
时间: 2024-10-22 15:18:03 浏览: 39
商业编程-源码-ADN 论坛 v3.2.zip
在Linux shell脚本中,你可以通过`ps aux`命令查找与特定jar文件相关的进程,然后使用`kill`命令杀死旧的进程,接着利用`nohup`或`screen`等工具以守护进程的方式运行新的jar文件。这里是一个简单的示例:
```bash
#!/bin/bash
# 定义要检查的服务名和jar文件路径
service_name="th-xxx.jar"
jar_path="/path/to/th-adn-xxx.jar"
# 查找并列出所有包含指定jar名的进程ID
ps_output=$(ps -ef | grep $jar_path)
# 如果有进程存在
if [ ! -z "$ps_output" ]; then
# 杀死所有包含jar名的进程
ps_ids=($ps_output | awk '{print $1}')
for pid in "${ps_ids[@]}"; do
kill -9 $pid
done
# 等待一段时间让进程结束(可根据实际情况调整)
sleep 5
# 使用nohup启动最新版本的jar文件
nohup java -jar $jar_path &>/dev/null & echo $! > service.pid
echo "Service restarted with PID: $(cat service.pid)"
else
echo "No service found with jar file $jar_path."
fi
# 添加
阅读全文