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

... init の代わりに bash を実行します。つまり、rc スクリプトは実行されません。init通常と同じように、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 に答える