我有几个jar文件,它们想作为AIX上的服务运行。如果该服务崩溃/结束,则必须自动重新启动。我该如何实现?
我有一个像这样的shell脚本
(
until java -jar Test.jar; do
echo "Test Service crashed with exit code $?. Respawning... " >&2
sleep 5
done
)
这可行,但是我想知道是否有更好的方法可以做到这一点?如果计算机由于某种原因重新启动,则必须手动运行脚本。我不是Linux或AIX的专家。
答案 0 :(得分:0)
您可以在this page中查看有关AIX中自动启动/重新启动服务/守护程序的信息
inittab条目
让我们看一下运行脚本的inittab条目。假设我们想要 运行脚本以将电子邮件发送给系统管理员,说明 系统启动时该框可用。
inittab的条目如下所示:
mailout:2:once:/usr/local/bin/mailout > / dev/null 2>&1 #mail users
以上条目可以总结如下:
mailout: The unique identifier
2:当系统达到运行级别2(默认值)时运行此命令 一次:运行脚本,不要等待脚本终止; init将继续处理inittab。如果该过程失败,则初始化不会 尝试重新运行它。 / usr / local / bin / mailout:要运行的命令的完整路径和脚本名称;请注意,输出被丢弃到/ dev / dull。我们 最后以“#”注释说明脚本的功能。
出于完整性考虑,以下是相关脚本:
!/bin/sh
#mailout
/usr/sbin/sendmail ‑t <<mayday
From: hostname
To: rs6admins
Subject: hostname P‑Series is up
The AIX hostname is now up, please check services.
.
mayday