我有一个覆盆子pi,我想启动一个java应用程序5个小时,杀死它并重新启动它。
因为我需要通过SSH登录,我认为在屏幕上运行java应用程序很聪明(因为我想在程序运行时做其他事情)。
所以没有我开始使用的脚本:
screen -S java
java -jar program.jar
然后我发送键[CTRL] + [A] + [D]来分离。
现在我需要在shell中编写它。 我开始时:
#!/bin/bash
#Check if app runs right now
OUTPUT="$(screen -ls)"
if [[ $OUTPUT == *"javaapp"* ]]
then
#Say that the javaapp is currently running
echo "javaapp is up!";
#Kill the javaapp!
screen -d javaapp #Does not work
fi
#Start it again
但它不起作用:/ 我甚至不知道如何解决它,因为它是我想写的第一个脚本。有没有人可以帮助我?
(哦:我会每隔5小时通过.cronjob运行一次shellcript)
提前致谢!
答案 0 :(得分:0)
通过cron尝试这个技巧:
#!/bin/bash
if [[ -f /opt/javaapp.pid ]]
kill -9 `cat /opt/javaapp.pid`
rm /opt/javaapp.pid
fi
nohup java -jar program.jar > /opt/javaapp.log 2>&1&
echo $! > /opt/javaapp.pid
编辑:我不确定它是否适用于Java应用程序,或者适用于倾向于产生其他进程的应用程序。如果你试试这个,请注意僵尸。
另外,如果有人知道更好的方法,请分享。现在我很好奇。