2010-01-14 30 views
1

不能運行在/boot/grub/menu.lst中追加一行到Linux的條目myScript的藉助GRUB和menu.lst運行腳本?

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的?

回答

1

如果你想運行一個腳本作爲啓動過程的一部分,要做到這一點與init

在適當的運行級別(很可能是5,如果你正在運行GUI,但3如果你只啓動到命令行)目錄,你會想要加的S ##腳本。

在我的主系統,這將是:

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

,並添加你的腳本命令在那裏。因爲我使用了00,所以腳本將在啓動過程中很早運行。因此,很少有服務會啓動(例如,網絡不會被初始化)。如果你只是想運行的腳本作爲啓動的一部分,並不真正需要它在啓動過程的早期,你想使用一個較大的數字:

/etc/rc.d/rc5.d/S98whatever 
+0

So..is那裏有我可以補充的init什麼特別的地方= /家庭/ myScript的 我跑myScript的作爲啓動,但我希望它運行之前幾乎所有的東西。我注意到myScript在執行了很多檢查之後運行,而我希望只要從grub中選擇Linux條目,就應該運行myScript。任何想法,如果我可以從GRUB做到這一點? – baltoro

+0

這不是一種非常「Ubuntu」的添加init腳本的方式。 –

+0

@baltusaj - 使用S00whatever選項。您的腳本將在內核啓動後不久運行,但在完整啓動過程的早期運行。 –

2

在您需要的多宗個案內核加載比「初始化」(這反過來,調用rc腳本)以外的內容,你可以在GRUB中kernel線,它告訴內核的第一個程序運行追加一個init=/path/to/program

例如:

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

...將運行bash的,而不是初始化的,這意味着沒有rc腳本將被運行。 Bash會有PID 1,就像init通常那樣。

這是信息亭,移動設備和獨立管理其服務的其他有用的東西(或沒有)。

否則,正如其他人所說,只寫一個初始化腳本,並將其命名與您希望什麼時候在啓動過程中它運行一致。