Método 1
Eu criei uma configuração de demonstração que você descreveu aqui na minha máquina. Eu também enfrentei o problema que você relatou. Mas adicionar uma pequena linha de script
resolveu meu problema.
Eu adicionei a seguinte linha no final de myprogram
exec $SHELL
Após o término do seu script, o processo de Bash se substituirá por uma nova invocação de si mesmo.
Método 2
Ou você pode tentar o seguinte método no qual iniciamos um detached screen
primeiro e enviar o comando para essa tela usando stuff
Para isso, primeiro você precisa iniciar uma tela separada.
screen -dmS MySessionName
Em seguida, envie o script para essa tela.
screen -S MySessionName -p 0 -X stuff 'myprogram\n'
Isso também funcionou para mim.