2011-05-09 86 views
1

有沒有辦法在啓動時找到傳遞給內核(/ proc/cmdline)的參數,而無需讀取proc中的任何文件?我可能有一個需要在/ proc掛載之前讀取引導參數的進程。讀取Linux內核參數

回答

2

看起來內核會將引導行上的任何內容作爲參數傳遞給init,除非存在'='或''。 '

Passing Linux boot opts to Init

+1

我相信init會將它們設置爲一個環境變量。 – 2011-05-10 13:42:45

0

我敢肯定有一個更好的辦法,但我看到它在dmesg的

+0

humm ...我不認爲這也可以。我希望在C庫中有一個函數可以提供信息。也許我應該將C標籤添加到問題中。需要此信息的進程將作爲init(它將是第一個進程)運行,並且需要在exec()真正的init進程之前消化信息。 – tMC 2011-05-09 01:01:36

+0

@tMC:首先想到的。讓你的程序掛載'/ proc'。 :-) – Mikel 2011-05-09 01:13:27

+0

@mikel - 它可能也有。但我希望以不同的方式對啓動過程進行分組。我只是希望在libs中有一個函數可以通過ctypes或我可以在啓動啓動過程之前啓動的接口執行。 – tMC 2011-05-09 01:17:36

0

我想了解您的需求更好,因爲你幾乎保證有/proc安裝。安裝/procinit所做的第一件事情之一。

與Ubuntu的新貴:/etc/init/mountall.conf,在startup事件
的Fedora與啓動腳本的一部分:/etc/rc.sysinit,第二件事情它(設置主機名之後)

您的代碼幾乎可以肯定在此之後運行。


看到,因爲您要更換init,看看init是怎麼做的。 init git repo

似乎有一個全球性的符號叫做boot_command_line

+0

我正在用中斷語言(python)重寫init。我想將路徑傳遞給python中斷程序作爲引導選項,但由於init將是一個python腳本,我需要知道中斷程序的路徑在exec()init過程之前的位置。 – tMC 2011-05-09 01:14:18

+5

LOL,Python作爲*中斷*語言 - 使我的一天:) – 2011-05-09 01:36:24