Você tem dois problemas aí.
-
/etc/rc.local
é executado como root, então você não precisa desudo
-
rc.local
é um script, estes são sequenciais e cada comando bloqueia a execução. Execute seus comandos em segundo plano adicionando&
no final.
Observe também que rc.local
usa #!/bin/sh -e
, o que significa que sairá de qualquer erro. Se você quiser que o script continue a execução mesmo se um dos comandos falhar, use o tipo de abordagem command arg1 arg2 || true
.