[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