/dev/initctl怎么玩

本文探讨了如何通过/dev/initctl管道文件来更改Linux系统的运行级别。文章详细记录了一次尝试从运行级别2切换到3的过程,并分享了在init程序源代码中找到的解决方法。
/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) 



 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1273448

i-zj-3465@ki-zj-3465:~/zuxin/can_bus_tool$ ls /dev/ttyUSB* ls: 无法访问 '/dev/ttyUSB*': 没有那个文件或目录 ki-zj-3465@ki-zj-3465:~/zuxin/can_bus_tool$ cd / ki-zj-3465@ki-zj-3465:/$ ls 1 bin.usr-is-merged cdrom efi home lib64 lost+found mnt proc run sbin.usr-is-merged sfos srv tmp var bin boot dev etc lib lib.usr-is-merged media opt root sbin sf snap sys usr ki-zj-3465@ki-zj-3465:/$ cd dev/ ki-zj-3465@ki-zj-3465:/dev$ ls autofs drm_dp_aux0 i2c-0 kmsg loop19 loop6 null sda2 snd tty15 tty28 tty40 tty53 tty9 ttyS2 ttyS4 vcs1 vcsu1 block ecryptfs i2c-1 kvm loop2 loop7 nvram sda3 stderr tty16 tty29 tty41 tty54 ttyprintk ttyS20 ttyS5 vcs2 vcsu2 bsg fb0 i2c-10 log loop20 loop8 port sda4 stdin tty17 tty3 tty42 tty55 ttyS0 ttyS21 ttyS6 vcs3 vcsu3 btrfs-control fd i2c-11 loop0 loop21 loop9 ppp sda5 stdout tty18 tty30 tty43 tty56 ttyS1 ttyS22 ttyS7 vcs4 vcsu4 bus full i2c-2 loop1 loop22 loop-control psaux sda6 tpm0 tty19 tty31 tty44 tty57 ttyS10 ttyS23 ttyS8 vcs5 vcsu5 char fuse i2c-3 loop10 loop23 mapper ptmx sda7 tpmrm0 tty2 tty32 tty45 tty58 ttyS11 ttyS24 ttyS9 vcs6 vcsu6 console gpiochip0 i2c-4 loop11 loop24 mcelog ptp0 sdb tty tty20 tty33 tty46 tty59 ttyS12 ttyS25 udmabuf vcsa vfio core hidraw0 i2c-5 loop12 loop25 mei0 pts sdb1 tty0 tty21 tty34 tty47 tty6 ttyS13 ttyS26 uhid vcsa1 vga_arbiter cpu hidraw1 i2c-6 loop13 loop26 mem random sdb5 tty1 tty22 tty35 tty48 tty60 ttyS14 ttyS27 uinput vcsa2 vhci cpu_dma_latency hidraw2 i2c-7 loop14 loop27 mqueue rfkill sdb6 tty10 tty23 tty36 tty49 tty61 ttyS15 ttyS28 urandom vcsa3 vhost-net cuse hidraw3 i2c-8 loop15 loop28 mtd rtc sg0 tty11 tty24 tty37 tty5 tty62 ttyS16 ttyS29 usb vcsa4 vhost-vsock disk hpet i2c-9 loop16 loop3 mtd0 rtc0 sg1 tty12 tty25 tty38 tty50 tty63 ttyS17 ttyS3 userfaultfd vcsa5 zero dma_heap hugepages initctl loop17 loop4 mtd0ro sda shm tty13 tty26 tty39 tty51 tty7 ttyS18 ttyS30 userio vcsa6 zfs dri hwrng input loop18 loop5 net sda1 snapshot tty14 tty27 tty4 tty52 tty8 ttyS19 ttyS31 vcs vcsu ki-zj-3465@ki-zj-3465:/dev$ ls us usb/ userfaultfd userio ki-zj-3465@ki-zj-3465:/dev$ ls us usb/ userfaultfd userio ki-zj-3465@ki-zj-3465:/dev$ ls usb/ hiddev0 ki-zj-3465@ki-zj-3465:/dev$
最新发布
09-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值