linux 先停止后运行jar包脚本
时间: 2024-11-27 08:17:46 浏览: 18
在Linux系统中,如果你有一个Java应用程序打包成JAR文件,并且想要先停止正在运行的服务,然后启动新的JAR包,你可以创建一个bash shell脚本来完成这个任务。这里是一个简单的例子:
首先,假设你的JAR文件名为`myapp.jar`,并且你想让其运行在一个守护进程中,比如使用Java的`java -Djava.security.policy=my-policy-file policytool ... myapp.jar &`命令。为了控制它的生命周期,你可以创建一个名为`start-stop-script.sh`的shell脚本,内容如下:
```sh
#!/bin/bash
# 停止服务(如果有)
if [ -n "$(pgrep -f "java myapp.jar")" ]; then
echo "Stopping the service..."
killall java myapp.jar
sleep 2 # 等待几秒,确保服务真正停止
fi
# 检查是否已停止
if ! pgrep -f "java myapp.jar" > /dev/null; then
echo "Starting the JAR..."
nohup java -Djava.security.policy=my-policy-file policytool ... myapp.jar & # 后台运行JAR
else
echo "The service is already running or has not been stopped properly."
fi
```
在这个脚本里:
- `pgrep -f "java myapp.jar"`用于查找正在运行的进程。
- 如果找到进程,就使用`killall`命令停止它。
- 使用`nohup`命令保证JAR在后台持续运行,即使用户登出也不会立即结束。
要在Linux终端中执行此脚本,确保它有执行权限(`chmod +x start-stop-script.sh`),然后输入`./start-stop-script.sh`即可。
阅读全文