У меня есть запись в 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: соединение отказано
blockquote>и паника ядра
Есть ли какое-то решение для этого?
Вам нужно выполнить exec (os.execv) init, а не запускать его как подпроцесс. Как это: os.execv('/sbin/init', ['/sbin/init'])