Quando você executa su , o shell é substituído pelo processo su . su , em seguida, forks e execs bash . bash configura o redirecionamento de saída e, em seguida, forks e execs env . env procura o PATH, localiza python e o executa. Então você fica com três processos, 1) su , esperando que bash saia, 2) bash , esperando que python (anteriormente env ) saia e 3) python , que está ocupado com o seu script.
Não há nada de errado com isso. su é a maneira consagrada pelo Unix de trocar temporariamente os usuários, e é isso que você deve usar. Da mesma forma, a maneira de executar uma linha de comando é usar um shell, portanto su é executado bash e permite bash tratá-lo. Novamente, isso segue a abordagem geral da caixa de ferramentas Unix, permitindo que o shell faça o que o shell é bom, e não reinventando a linha de comando do shell e a funcionalidade de pesquisa PATH em outro aplicativo.
Além disso, como o bash já está fazendo a pesquisa PATH, é possível desativar o uso de env e invocar python diretamente.