在启动时启动一个服务,如果它在 AIX 下死掉,则自动重新生成该服务

在启动时启动一个服务,如果它在 AIX 下死掉,则自动重新生成该服务

我正在尝试编写一个可以将服务设置为的脚本:

  1. 被杀后自动重启
  2. 开机时自动启动

我可以通过使用来做到这一点/etc/inittab,但我正在使用的某些 AIX 服务器没有inittab.这意味着我无法将服务设置为像 inittab 中的那样。当我尝试解决方法时,我发现了 mkssys、rmssys、startsrc 和stopsrc。所以我尝试使用所有命令编写脚本。

%post
if [ -f /bin/mkssys ]; then
mkssys -s myservice -p /opt/fikrie/bin/myservice -a "-n" -u -R -S -f 9 -n 15
startsrc -s myservice
else
#use the inittab's script here
fi

%postun
if [ -f /bin/stopsrc ]; then
stopsrc -s myservice
rmssys -s myservice
else
#use the inittab's script here
fi

这个脚本几乎完成了任务。唯一的问题是该服务不会在启动过程中启动。这意味着我需要在服务器首次启动时手动启动该进程。有什么命令可以做到这一点吗?我是否错过了 mkssys 命令中的任何可用选项?

我尝试跟踪 sshd 服务,因为它不在 inittab 中,但在启动过程中启动。也许我可以在我的服务中使用同样的技巧。我认为 sshd 在启动过程中使用 rc.d 来启动服务。所以我尝试在与 sshd 相同的目录中编写脚本,但它似乎不起作用。谁能帮助或引导我走上正确的道路?

答案1

我发现的解决方案之一是使用 rc.d 目录。以 sshd 为例,因为该进程没有使用 inittab,但仍然可以在启动时自动启动。

相关内容