O $(...) é resolvido primeiro, só então nohup . Ou seja quando você executa nohup $(python test.py; python test.py) & , isso é o que acontece:
- O shell executa
$(...), que retorna a stringStart time ...e, em seguida, - Executa
nohup Start time ..., o que obviamente falha porque não existe tal comandoStart.
Como nohup só pode executar um comando, essa é uma solução comum:
~ $ nohup sh -c "python test.py; python test.py" &
Então, você executa sh em nohup e, em seguida, executa os comandos desejados.