Da Sie die su(1)
von einem Skript aufgerufene Shell füttern, $!
wird sie vom aufrufenden Skript interpretiert su(1)
. Dies kann man verhindern, indem man flucht und $!
dann $!
in die Shell kommt, die von su(1)
und nicht vom aufrufenden Skript aufgerufen wird :
if [ $UID -eq 0 ]; then su myuser <<EOF sleep 30 & echo \$! >mypid.pid EOF fi