Dani ha scritto:Ho sempre creduto che ./path/programma fosse la stessa cosa di /path/programma
Ed infatti
è la stessa cosa. Quello che ti è sfuggito è lo spazio che c'era tra il punto e il path.
è diverso da
nota lo spazio
Quando esegui
è come fare un
e questo fa si che la shell corrente esegue direttamente il programma senza fare una fork. Non so se hai presente quello che significa. Quando lanci un programma la shell crea un processo figlio che ha il compito di eseguire programma. Quando esegui un
è la shell stessa che esegue il programma, nel senso che la shell stessa diventa il tuo programma. Quindi, quando il programma finisce la shell stessa finisce.
Se capisci quello che ti dico ora, non ti capiterà più un errore simile

(faccio il guappo

).
Questo vuol dire che la tua shell, che doveva eseguire:
Codice: Seleziona tutto
/etc/rc.d/rc.messagebus start
/etc/rc.d/rc.hald start
quando esegue:
diventa lo script rc.messagebus (o meglio diventa la shell che esegue quello script). Ragion per cui succedono due cose:
- 1) Tutto ciò che segue nel file rc.local dopo ". /etc/rc.d/rc.messagebus start" non viene eseguito.
2) Quando finisce il processo rc.messagebus finisce anche la tua shell.
Fai questa prova. Scrivi in un file, ad esempio prova.tmp quanto segue:
dai i diritti di esecuzione a prova.tmp. Ora apri un xterm ed esegui:
Poi invece prova ad eseguire:
.
Spero di essere stato chiaro
Spina
P.S. Tanto lo so che sapevi già tutto e che la tua era una semplice svista
