2

我不能通过在 /boot/grub/menu.lst 中的 Linux 条目中附加一行来运行myScript

title           Ubuntu 9.04, kernel 2.6.28-11-generic
uuid            b20f1720-b3f5-4162-bc92-ab2deb8d5d04
#kernel         /boot/vmlinuz-2.6.28-11-generic root=UUID=b20f1720-b3f5-4162-kernel/boot/vmlinuz-2.6.28-11-generic root=UUID=b20f1720-b3f5-4162-bc92-ab2deb8d5d04 ro
initrd          /boot/initrd.img-2.6.28-11-generic
/home/baltoros/Desktop/myScript

此时甚至可以运行 myScript 吗?

4

2 回答 2

3

在您需要内核加载除“init”之外的其他内容(反过来,调用 rc 脚本)的奇怪情况下,您可以在 grubinit=/path/to/programkernel行上附加一个,它告诉内核第一个运行的程序。

例如:

kernel /boot/vmlinuz-2.6.xx root=/dev/sda3 ro init=/bin/bash

... 将运行 bash 而不是 init,这意味着不会运行 rc 脚本。Bash 的 PID 为 1,就init像平常一样。

这对于信息亭、移动设备和其他独立管理其服务(或根本没有)的东西很有用。

否则,正如其他人所说,只需编写一个初始化脚本并将其命名为与您希望它运行的引导过程中的哪个点一致。

于 2010-01-14T11:01:22.467 回答
1

如果您想在启动过程中运行脚本,您需要使用init来执行此操作。

在适当的运行级别(如果您正在运行 GUI,很可能为 5,但如果您仅引导到命令行,则为 3)目录中,您将需要添加一个 S## 脚本。

在我的主系统上,这将是:

/etc/rc.d/rc5.d/S00whatever 

并在那里添加您的脚本命令。因为我使用了数字 00,所以您的脚本将在启动过程的早期运行。因此,很少有服务会启动(例如,网络尚未初始化)。如果您只想将脚本作为启动的一部分运行,并且在启动过程的早期并不真正需要它,则您需要使用更大的数字:

/etc/rc.d/rc5.d/S98whatever
于 2010-01-14T06:29:02.700 回答