Я бы предположил что-нибудь простое, например, опечатку в имени команды или examplecommand.ksh, не найденный в пути.
Переменные pid будут заполнены nohup независимо от того, было ли что-нибудь выполнено на самом деле, и если nohup не сможет выполнить команду, он немедленно завершится. Кроме того, nohup не будет беспокоить вас ни одним из этих надоедливых сообщений об ошибках, даже если он полностью выйдет из строя.
[ksh]$ nohup nonexistent.ksh &
[1] 32938
appending output to nohup.out
[ksh]$ echo $!
32938
[1] + Done(127) nohup nonexistent.ksh &
PS. Возможно, вы захотите взглянуть на xargs. Как в
[ksh]$ seq 1 4 | xargs -n 1 -P 4 -I PART echo "part PART finished"
part 2 finished
part 1 finished
part 3 finished
part 4 finished
Куда вы помещаете интерфейс eth0? Насколько я помню, вам нужно отключить интерфейс, чтобы изменить его статус с нижнего на верхний.
Поэтому попробуйте добавить ifconfig eth0 down
или перед выполнением echo "iface eth0 inet dhcp” >>/etc/network/interfaces
и запускомifconfig eth0 up
Кроме того, если конфигурация устарела, вместо нее следует использовать команду ip.