La soluzione è usare il flag -b per sudo per eseguire il comando in background:
$ sudo -b ./ascii_loader_script.pl 20070502 ctm_20070502.csv
Dovresti usare nohup solo se vuoi che il programma continui anche dopo aver chiuso la tua attuale sessione di terminale
Il problema qui, imho, non è nohup, ma l'elaborazione in background sudo.
Stai mettendo il processo in background (&alla fine del comando) ma probabilmente sudo richiede l'autenticazione della password, ed è per questo che il processo si interrompe.
Prova uno di questi:
1) rimuovere la e commerciale dalla fine del comando, rispondere al prompt di passord e successivamente metterlo in background (digitando CTRL-Z - che interrompe il processo e inviando il comando bg per inviarlo in background)
2) Modificare /etc/sudoers per non richiedere la password degli utenti includendo la riga:myusername ALL=(ALL) NOPASSWD:ALL
Se oltre alla risposta della password la tua applicazione attende altri input, puoi reindirizzare l'input al comando in questo modo:$ cat responses.txt|sudo mycommand.php
hth
Puoi provare
sudo su
e poi
nohup ./ascii_loader_script.pl 20070502 ctm_20070502.csv &
invece di
nohup sudo ./ascii_loader_script.pl 20070502 ctm_20070502.csv &