如何在 grub 条目中传递 init=MY_SCRIPT 后从用户脚本运行正常会话

如何在 grub 条目中传递 init=MY_SCRIPT 后从用户脚本运行正常会话

我在 grub 中有一个条目来启动用 Python 编写的配置脚本。我想让用户选择在工作完成后启动正常会话。但我发现 /sbin/init 需要 PID==1,所以当我在 Python 中运行时:

#!/usr/bin/python
...
import subprocess
subprocess.call(["/bin/bash", "-c", "exec /sbin/init 2"])
#subprocess.call("exec /sbin/init 2", shell=True)

-结尾为:

init:无法连接到套接字 /com/ubuntu/upstart:连接被拒绝

和内核恐慌

有没有什么办法可以解决这个问题?

答案1

您需要执行( os.execv )init,而不是将其作为子进程运行。像这样: os.execv('/sbin/init', ['/sbin/init'])

相关内容