Ini seharusnya berhasil:
nohup ./myprogram.sh > /dev/null 2>&1 &
echo $! > run.pid
Anda sudah memiliki satu ampersand setelah pengalihan yang menempatkan skrip Anda di latar belakang. Oleh karena itu Anda hanya perlu mengetikkan perintah yang diinginkan setelah ampersand tersebut, tidak diawali dengan yang lain:
nohup ./myprogram.sh > /dev/null 2>&1 & echo $! > run.pid