作为PXE配置的一部分,我正在尝试编写一个python脚本,该脚本可以在一次性重启后继续完成某些配置。这是我到目前为止所做的:
我创建了/etc/init.d/pxe_reboot:
#! /bin/sh
case "$1" in
start)
python /home/user/pxe_setup.py &
;;
stop|restart|reload)
;;
esac
我有以下脚本:
#! /usr/bin/python
import subprocess
import os.path
import sys
def run_command(command):
p = subprocess.Popen(command,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True)
p.wait()
return iter(p.stdout.readline, b'')
def before_reboot():
{stuff}
def after_reboot():
{more stuff}
if os.path.isfile("/home/user/pxe_flag"):
after_reboot()
run_command("sudo rm /home/user/pxe_flag")
run_command("sudo update-rc.d pxe_reboot remove")
else:
before_reboot()
run_command("sudo touch /home/user/pxe_flag")
run_command("sudo update-rc.d pxe_reboot defaults")
run_command("sudo reboot")
这似乎主要起作用,除了我注意到机器关机时after_reboot()
打印的一些打印语句,而不是下次启动时。
有没有更好的方法来做我想在python中实现的目标?