자체 초기화 롤링: 종료/다시 시작하는 방법은 무엇입니까?

자체 초기화 롤링: 종료/다시 시작하는 방법은 무엇입니까?

읽고 나서이 답변, 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'])

그런 다음 GRUB 구성에 해당 행을 init=/init-python추가 하십시오 . linux효과가있다.

이제 궁금합니다. homebrew 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)

관련 정보