看完之后这个答案,我认为在 Python 上推出我自己的 init 会很有趣,所以我在/init-python
.
#!/usr/bin/python3
import os
import subprocess
# Make / writable!
subprocess.call(['/bin/mount', '-o', 'rw,remount', '/'])
# Became IPython (Now we're at it, get a good shell!)
os.execv('/usr/bin/ipython3', ['init'])
然后添加init=/init-python
到linux
GRUB 配置中的行。有用。
所以我现在想知道......如何使用自制的 init 关闭或重新启动我的系统?
答案1
可以用reboot
函数( man 2 reboot
)来完成。
import ctypes
libc = ctypes.cdll['libc.so.6']
RB_POWER_OFF = 0x4321fedc
RB_AUTOBOOT = 0x01234567
def shutdown():
libc.reboot(RB_POWER_OFF)
def reboot():
libc.reboot(RB_AUTOBOOT)