用于 AIX 的 Crontab @reboot

问题描述

我希望在服务器重新启动时执行 AIX machine 上的脚本。我在 crontab 文件中尝试了以下命令,但收到错误

@reboot sleep 300 && /usr/bin/sh /opt/script.sh

crontab 文件中的一行: @reboot sleep 300 && /usr/bin/sh /opt/script.sh

包含以下错误0481-079 到达了一个非预期的符号。

解决方法

要在 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 系统将假定您的脚本支持参数 -- startstop。在启动期间,它将使用“start”参数调用您的脚本。如果您现有的脚本默默地忽略了任何参数,那您就没事了。否则,您可能需要对其进行修改或编写包装脚本。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...