C 读取Linux内核参数
有没有一种方法可以在引导时找到传递给内核(/proc/cmdline)的参数,而不读取proc中的任何文件?我可能有一个进程需要在装入/proc之前读取引导参数。我确信有更好的方法,但我确实在dmesg中看到了它,我想更好地理解您的需求,因为您几乎可以保证装入C 读取Linux内核参数,c,linux,kernel,C,Linux,Kernel,有没有一种方法可以在引导时找到传递给内核(/proc/cmdline)的参数,而不读取proc中的任何文件?我可能有一个进程需要在装入/proc之前读取引导参数。我确信有更好的方法,但我确实在dmesg中看到了它,我想更好地理解您的需求,因为您几乎可以保证装入/proc。装载/proc是init首先要做的事情之一 UbuntuWithUpstart:/etc/init/mountall.conf,是启动事件的一部分 Fedora with initscripts:/etc/rc.sysinit,
/proc
。装载/proc
是init
首先要做的事情之一
UbuntuWithUpstart:/etc/init/mountall.conf
,是启动
事件的一部分Fedora with initscripts:
/etc/rc.sysinit
,它做的第二件事(在设置主机名之后)
您的代码几乎肯定会在此之后运行
在替换
init
时,请看一下init
是如何实现的
似乎有一个名为
boot\u command\u line
的全局符号,内核似乎将引导行上的任何内容作为arg传递给init,除非有“=”或“.”
哼。。。我认为这也行不通。我希望C库中有一个函数可以提供这些信息。也许我应该在这个问题上加上C标记。需要此信息的进程将作为init运行(这将是第一个进程),并且需要在exec()启动真正的init进程之前对信息进行消化。@tMC:首先考虑。使您的程序装载
/proc
:-)@米克尔-可能也有。但我希望以不同的方式对启动过程进行分组。我只是希望libs中有一个函数可以通过ctypes执行,或者有一个接口可以在启动过程之前fnclt。@robin-是的,大部分都已经编写好了,我只是讨厌shebang是硬代码,我正在用中断语言(python)重写init。我想将路径作为引导选项传递给python中断器,但由于init将是一个python脚本,所以我需要知道中断器的路径在哪里,然后才能执行()my init process.LOL,python作为一种中断语言-这让我很高兴:),我相信init会将它们设置为一个环境变量。