Pipe envia a saída de um comando para o próximo. Você está procurando o & (E comercial). Isso bifurca os processos e os executa em segundo plano. Então, se você executou:
WatchDog & TempControl & GPUcontrol
Ele deve executar todos os três simultaneamente.
Além disso, quando você executa sudo bash /etc/rc.local , acredito que esteja executando-as em série, não em paralelo (espera que cada comando termine antes de iniciar o próximo). Isso seria mais ou menos assim:
WatchDog ; TempControl ; GPUcontrol
Separadores de comandos
; semi-colon -
command1 ; command2
Isso executará command2 após o término do command1 , independentemente de ter sido bem sucedido ou não
& ampersand -
command1 & command2
Isso executará command1 em uma subshell e executará command2 ao mesmo tempo.
|| OR logical operator -
command1 || command2
Isso executará command1 e, em seguida, executará command2 SOMENTE se command1 falhar
&& AND logical operator -
command1 && command2
Isso executará command1 e, em seguida, executará command2 SOMENTE se command1 for bem-sucedida.