[gull] Shell sans "[1] 5573" et "[1]+ Done commande"
Marc Mongenet
marc at mongenet.ch
Tue May 27 00:49:42 CEST 2008
2008/5/26 Daniel Cordey <dc at mjt.ch>:
> En effet, les messages de job control sont engendres par des signaux et
> envoyes directement au "controlling terminal". Il est toutefois possible de
> bloquer les process en attent d'entree ou de sortie quand ceux-ci sont
> executes en backgraound (stty tostop).
>
> Normalement, l'output :
>
> [1] PID
>
> N'est recu que si le process est execute en background et que l'on est dans un
> shell attache au "controlling terminal". Ceci est tout a fait standard et
> fonctionne de la meme maniere en ksh/POSIX_sh.
>
Par curiosité j'ai fait un petit programme qui daemonize la commande
en ligne.
#include <unistd.h>
#include <stdio.h>
int main(int argc, char **argv)
{
if (daemon(1, 0) == -1) {
perror("deamon()");
return 1;
}
if (argc > 1) {
/* Pas sûr qu'execvp soit vraiment approprié, pas eu le temps de
me farcir le détail des manuels d'exec. */
execvp(argv[1], argv+1);
perror("execvp()");
return 1;
}
return 0;
}
> gcc c.c
> ./a.out xclock -digital
>
Plus de "[1] PID" ni de "Done" !
Mais la complétion de commande cherche évidemment un fichier
local au lieu de xclock...
Mais pour nouveau point, je crois qu'il y a des combines ; je me
souviens avoir utilisé un shell qui faisait de la complétion de nom
de manuel à la suite des lettres "man ".
--
Marc Mongenet
Creator of the Web 2 Markup Language
http://w2ml.com
More information about the gull
mailing list