Linux
滾動你自己的初始化:如何關閉/重啟?
在閱讀了這個答案之後,我認為在 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關閉或重新啟動我的系統?
它可以通過
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)