我需要在系统启动时运行一个脚本,但Linux版本很旧,所以:
- 没有
rc.local
。即使我创建它并给它一个命令,它也从未运行。 crontab
根本就没有。- 添加脚本
init.d
也没有产生任何结果。 - 显然没有 Upstart 应用程序,并且无法安装,因为我只能通过 ssh 访问设备。
我确信脚本本身可以工作,因为当我手动运行它时它当然可以工作。该设备是嵌入式Linux设备(Ettus E100,关联)。我的 Linux 版本是 3.0.0,这是确切的版本:
$ cat /proc/version
返回:Linux version 3.0.0 (oe-classic@oebuild) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #1 Thu Mar 28 18:15:38 PDT 2013
.$ dmesg | head -1
返回:[ 0.000000] Linux version 3.0.0 (oe-classic@oebuild) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #1 Thu Mar 28 18:15:38 PDT 2013
.$ runlevel
返回:N 5
.$ cat /etc/issue
什么也不返回。$ cat /etc/*-release
返回错误“没有这样的文件或目录”。$ lsb_release -a
返回错误“未找到命令”。$ uname -a
返回:Linux ettus-e1xx 3.0.0 #1 Thu Mar 28 18:15:38 PDT 2013 armv7l GNU/Linux
.
不知道如何检查我的发行版。
有没有其他方法可以让脚本在启动时运行?
答案1
您运行的是嵌入式 Linux,因此它的功能受到一定限制。不过,您似乎有 Sys V init,因此我们可以为您模拟 rc.local。
/etc/rc.local
使用您需要的说明创建一个文件,然后运行以下命令:
#ln -s /etc/rc.local /etc/rc5.d/S99rclocal
或者如果你有 sudo:
$sudo ln -s /etc/rc.local /etc/rc5.d/S99rclocal
答案2
如果您的服务器使用原始的 System V init 守护程序,您也可以使用该/etc/inittab
文件。