问题描述
我希望在服务器重新启动时执行 AIX machine
上的脚本。我在 crontab 文件中尝试了以下命令,但收到错误。
@reboot sleep 300 && /usr/bin/sh /opt/script.sh
crontab 文件中的一行: @reboot sleep 300 && /usr/bin/sh /opt/script.sh
解决方法
要在 AIX 服务器重新启动时执行脚本,您有两个选项,这两个选项都涉及 /etc/inittab file。
选项 #1 是将调用作为 inittab 条目插入到您的脚本中,使用 mkitab;例如:
mkitab 'myscript:2:once:/opt/script.sh'
这假设您已经使 /opt/script.sh 可执行文件 (chmod +x /opt/script.sh
) 和 put a proper sh-bang line in it。完成此操作后,无需使用 /usr/bin/sh 作为前缀。
选项#2 是利用现有的运行级别 2 脚本目录,该目录是从 /etc/inittab 中使用 l2:2:wait:/etc/rc.d/rc 2
条目调用的。只需将您的(正确可执行的)/opt/script.sh 文件放在 /etc/rc.d/rc2.d 中,并以 S
开头,以表明它应该在运行级别 2 中启动。例如:>
cp /opt/script.sh /etc/rc.d/rc2.d/S90-script.sh
这里我给它加上了前缀“S90”,它的前导 S
表示启动,90 表示在运行级别 2 内对项目进行排序的粗略方式。警告解决方案是 init 系统将假定您的脚本支持参数 -- start
或 stop
。在启动期间,它将使用“start”参数调用您的脚本。如果您现有的脚本默默地忽略了任何参数,那您就没事了。否则,您可能需要对其进行修改或编写包装脚本。