/dev/initctl是一个管道文件,很多人知道它,但是知道怎么用。要想知道怎么用还是得看init程序的源代码,在init.c中就用到了 /dev/initctl管道文件。可以通过/dev/initctl改变系统的运行级别,但是怎么改变呢?比如说当前运行级别是2,我想将运行级别提到 3,那么想当然的做法就是:
[root@localhost zhaoy]# touch level
[root@localhost zhaoy]# echo '3'>level
[root@localhost zhaoy]# cat level >/dev/initctl
但是得到的结果却是:
INIT: got bogus initrequest
于是,我在init.c中搜以上错误字符串,在check_init_fifo中找到了它,以下看一下check_init_fifo函数的相关部分:
void check_init_fifo(void)
{