gpt4 book ai didi

bash - glassfish 死了并且不再开始

转载 作者:行者123 更新时间:2023-12-04 18:30:40 24 4
gpt4 key购买 nike

我们的一个应用服务器(Glassfish v3.0.1)一直无缘无故地崩溃。有时,我远离互联网,所以我无法再次运行它。因此,我编写了一个简单的 bash 脚本等待 10 分钟,然后以管理员身份运行。它像是:

#!/bin/bash
while true;
do sleep 600;
sudo /home/ismetb/glassfishv3.0.1/glassfish/bin/asadmin start-domain;
done

这似乎工作正常,但我有几个问题:
  • 如果我终止 bash 脚本(通过按 ctrl+z 按钮),Java 进程 (Glassfish) 将终止并 start-domainstop-domain命令根本不起作用。这意味着,我既不能停止 Glassfish,也不能访问它。我不知道其他人之前是否遇到过这个问题。如果进程死了,我唯一能做的就是查找 Java 进程的 ID 并从终端中将其杀死。这根本不可取。任何想法为什么当我退出脚本时 Java 进程会死掉?
  • 我想添加到脚本中的是检查 Glassfish 正在使用的端口。如果端口被占用,也许我可以假设 Glassfish 没有关闭! (但是,尽管 Glassfish 已死,但 Glassfish 仍可能使用端口(默认为 8080),我不确定)。如果没有,那么借助一个简单的代码,我可以获取 Java 进程的 id 并将它们全部杀死。然后start-domain命令将成功运行。关于如何做到这一点的任何想法或任何指示?
  • 最佳答案

    您可以使用 cron 代替工作。要为 root 安装 cron 作业,请输入

    sudo crontab -e

    并添加这一行
    */10 * * * * /home/ismetb/glassfishv3.0.1/glassfish/bin/asadmin start-domain

    这将运行 asadmin每十分钟。

    如果你不习惯命令行,你也可以试试 gnome-schedule ,但我没有这方面的经验。

    对于第二个问题,您可以使用 curlwget访问 glassfish。您可以尝试获取一些 URL,甚至访问管理界面,如果没有得到响应,则假设 glassfish 已关闭。

    关于bash - glassfish 死了并且不再开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132169/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com