Linux

滾動你自己的初始化:如何關閉/重啟?

  • July 15, 2013

在閱讀了這個答案之後,我認為在 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-pythonlinuxGRUB 配置中的行。有用。

所以我現在想知道……如何用我自製的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)

引用自:https://unix.stackexchange.com/questions/83049