我无法通过在/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?
答案 0 :(得分:2)
在奇怪的情况下,你需要内核加载'init'以外的东西(反过来调用rc脚本),你可以在grub的init=/path/to/program
行附加kernel
,它告诉内核第一个运行的程序。
例如:
kernel /boot/vmlinuz-2.6.xx root=/dev/sda3 ro init=/bin/bash
...将运行bash而不是init,这意味着不会运行rc脚本。 Bash会有PID 1,就像init
通常那样。
这对于自助服务终端,移动设备以及独立管理其服务的其他内容非常有用(或者根本不管理)。
否则,正如其他人所说的那样,只需编写一个init脚本并将其命名为与您希望它运行的引导过程中的哪一点一致。
答案 1 :(得分:1)
如果要在启动过程中运行脚本,则需要使用init执行此操作。
在适当的运行级别(如果运行GUI,则很可能为5,如果只是启动到命令行,则为3)目录,则需要添加S ##脚本。
在我的主系统上,那将是:
/etc/rc.d/rc5.d/S00whatever
并在那里添加脚本命令。因为我使用了多个00,所以你的脚本将在启动过程中很早就运行。因此,很少有服务会启动(例如,网络将不会被初始化)。如果您只想在启动过程中运行脚本并且在启动过程中不需要它,那么您需要使用更高的数字:
/etc/rc.d/rc5.d/S98whatever