Что не так с этим простым jython-кодом, так это то, что stdin, stdout не работают так, как мы ожидаем
import subprocess
import os
subprocess.call([os.environ.get('SHELL', '/bin/sh'), '-i'])
Предполагая, что мы хотим порождать оболочку на tty, кажется, что следующее
дать лучшие результаты:
import os
import subprocess
subprocess.call([os.environ.get('SHELL', '/bin/sh') +
' -i < /dev/tty > /dev/tty 2>&1'], shell=True)
Это запустит оболочку внутри другой подоболочки, которая заменит поврежденные потоки stdin, stdout на активный tty.