Как запустить обычный сеанс из пользовательского скрипта после передачи init = MY_SCRIPT в записи grub

У меня есть запись в 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: соединение отказано

и паника ядра

Есть ли какое-то решение для этого?

2
задан 30 December 2011 в 18:05

1 ответ

Вам нужно выполнить exec (os.execv) init, а не запускать его как подпроцесс. Как это: os.execv('/sbin/init', ['/sbin/init'])

0
ответ дан 30 December 2011 в 18:05

Другие вопросы по тегам:

Похожие вопросы: