编写一个shell脚本,可以实现java程序重启
时间: 2023-03-13 15:24:33 浏览: 134
可以使用以下shell脚本实现java程序重启:
#!/bin/bash
# 杀死Java进程
ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9
# 启动Java程序
cd /usr/local/java/
nohup java -jar {jar包名} >/dev/null 2>&1 &
相关问题
编写一个 shell 脚本,可以在 Linux 系统上启动、重启、停止jar程序
我可以提供一个简单的shell脚本,用于在Linux系统上启动、重启、停止jar程序:
#!/bin/bash
# 启动jar程序
start_jar() {
nohup java -jar $1 &
}
# 重启jar程序
restart_jar() {
stop_jar $1
start_jar $1
}
# 停止jar程序
stop_jar() {
ps -ef | grep $1 | grep -v grep | awk '{print $2}' | xargs kill -9
}
case "$1" in
start)
start_jar $2
;;
restart)
restart_jar $2
;;
stop)
stop_jar $2
;;
*)
echo "Usage: $0 {start|restart|stop} [jar file]"
exit 1
;;
esac
帮我写一个shell脚本在linux上运行实时监听java服务的状态,如果服务挂了,进行重启
好的,我会尽力为您回答。以下是针对您的问题的建议:
可以使用以下命令来检测 Java 服务的状态:
```
systemctl status <service-name>
```
其中 `<service-name>` 是 Java 服务的名称。如果服务正在运行,则状态将显示为 active;如果服务未运行,则状态将显示为 inactive。
要实现实时监听服务状态并进行重启,您可以编写一个脚本,该脚本利用上述命令检测服务状态,并在服务停止后重启服务。以下是一个例子:
```
#!/bin/bash
SERVICE_NAME="<service-name>"
while :
do
systemctl status $SERVICE_NAME | grep -q "active"
if [ $? -ne 0 ]
then
echo "$(date) - Service $SERVICE_NAME is not running, restarting..."
systemctl restart $SERVICE_NAME
fi
sleep 5
done
```
请将 `<service-name>` 替换为您要监控的 Java 服务的名称,并将脚本保存为 .sh 文件。将脚本运行在后台即可:
```
nohup ./<your-script-filename>.sh >/dev/null 2>&1 &
```
此命令将使脚本在后台运行,并将输出重定向到 /dev/null。如果您希望脚本的输出存储在文件中,请将 `>/dev/null 2>&1` 修改为 `>log.txt 2>&1`,其中 `log.txt` 是您要保存输出的文件名。
希望这些信息对您有所帮助。如果您还有其他问题,请随时询问。
阅读全文