Doudaal wrote:- le & après une commande ça veut dire que l'on détache le processus que l'on lance, de son processus père (en général le terminal)
Quel intérêt ? Quand un processus meurt, tout ses fils meurent aussi, c'est une règle (l'esprit de famille...) donc si vous lancez par exemple firefox dans votre terminal à l'aide de la commande
firefox
puis que vous quittez ce terminal, firefox va quitter aussi
alors qu'avec
firefox&
ça ne sera pas le cas car firefox ne sera plus un fils du terminal
- le && entre deux commande ca veut dire qu'on execute la deuxième en cas de succès de la première
Si le terminal ayant lancé un processus en background en perdait la paternité,
il ne pourrait plus faire un 'wait' dessus. Et ce n'est pas le cas.
Le processus fils ne change de père que lorsque son père meurt,
auquel cas son init l'adopte et devient son nouveau père.
Si tu n'es pas du genre à croire les gens sur parole (personnelement j'aime bien vérifier les choses par moi-même),
comme je suis de bonne humeur je te fais le code C qui prouve ce que je raconte :
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
printf("pid = %d, ppid = %d\n",
getpid(), getppid());
return EXIT_SUCCESS;
}
Et tu le lance avec et sans '&'