Je m'embrouille complètement avec les pages de manuel relative à fork,
getpid, etc.
Pourrait-on m'expliquer pas à pas comment résoudre ce problème sans
doute trivial:
Lancer à partir d'un script perl un programme qui, utilisé dans le
shell, devrait être interrompu par un Ctrl-C.
En l'occurrence, il s'agit de streamripper, qui me permet d'enregistrer
mes concerts nocturnes au format mp3 :
$SavingTime=600; # temps d'enregistrement en secondes
$STREAMRIPPER="/usr/bin/streamripper $Stream -d $SaveDir -a ";
open (STREAM, "$STREAMRIPPER |");
sleep $SavingTime;
# Faire quelque chose ici pour interrompre $STREAMRIPPER
close STREAM;
De préférence, ne pas tuer le script lui-même parce qu'il pourrait
reprendre un autre enregistrement plus tard, et ne pas tuer tous
les processus système (je veux dire ceux qu'on visualise avec ps -ax)
comprenant streamripper, puisque plusieurs enregistrements pourraient être
lancés simultanémént.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas George
Gauthier wrote in message :
open (STREAM, "$STREAMRIPPER |");
« Open returns nonzero upon success, the undefined value otherwise. If the "open" involved a pipe, the return value happens to be the pid of the subprocess. » (perldoc perlfunc, paragraphe sur open)
Ça devrait répondre à la question.
Gauthier wrote in message
<slrnd5vb19.3sb.alouest.du.soleil@fantasio.champignac>:
open (STREAM, "$STREAMRIPPER |");
« Open returns nonzero upon success, the undefined value otherwise. If the
"open" involved a pipe, the return value happens to be the pid of the
subprocess. »
(perldoc perlfunc, paragraphe sur open)
« Open returns nonzero upon success, the undefined value otherwise. If the "open" involved a pipe, the return value happens to be the pid of the subprocess. » (perldoc perlfunc, paragraphe sur open)
Ça devrait répondre à la question.
Jacques Caron
Salut,
On 15 Apr 2005 11:57:26 GMT, Gauthier wrote:
Lancer à partir d'un script perl un programme qui, utilisé dans le shell, devrait être interrompu par un Ctrl-C. En l'occurrence, il s'agit de streamripper, qui me permet d'enregistrer mes concerts nocturnes au format mp3 :
$SavingTime`0; # temps d'enregistrement en secondes $STREAMRIPPER="/usr/bin/streamripper $Stream -d $SaveDir -a "; open (STREAM, "$STREAMRIPPER |"); sleep $SavingTime; # Faire quelque chose ici pour interrompre $STREAMRIPPER close STREAM;
Déjà rien que le fait de fermer le pipe ça devrait inciter streamripper à s'arrêter. Mais si ce n'est pas le cas, il devrait suffire de noter la valeur de retour du open (qui est le pid de streamripper) et faire un kill 2,$pid.
Jacques. -- Interactive Media Factory Création, développement et hébergement de services interactifs: SMS, SMS+, Audiotel... http://www.imfeurope.com/
Salut,
On 15 Apr 2005 11:57:26 GMT, Gauthier <alouest.du.soleil@NOSPAM_skynet.be>
wrote:
Lancer à partir d'un script perl un programme qui, utilisé dans le
shell, devrait être interrompu par un Ctrl-C.
En l'occurrence, il s'agit de streamripper, qui me permet d'enregistrer
mes concerts nocturnes au format mp3 :
$SavingTime`0; # temps d'enregistrement en secondes
$STREAMRIPPER="/usr/bin/streamripper $Stream -d $SaveDir -a ";
open (STREAM, "$STREAMRIPPER |");
sleep $SavingTime;
# Faire quelque chose ici pour interrompre $STREAMRIPPER
close STREAM;
Déjà rien que le fait de fermer le pipe ça devrait inciter streamripper à
s'arrêter. Mais si ce n'est pas le cas, il devrait suffire de noter la
valeur de retour du open (qui est le pid de streamripper) et faire un kill
2,$pid.
Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/
Lancer à partir d'un script perl un programme qui, utilisé dans le shell, devrait être interrompu par un Ctrl-C. En l'occurrence, il s'agit de streamripper, qui me permet d'enregistrer mes concerts nocturnes au format mp3 :
$SavingTime`0; # temps d'enregistrement en secondes $STREAMRIPPER="/usr/bin/streamripper $Stream -d $SaveDir -a "; open (STREAM, "$STREAMRIPPER |"); sleep $SavingTime; # Faire quelque chose ici pour interrompre $STREAMRIPPER close STREAM;
Déjà rien que le fait de fermer le pipe ça devrait inciter streamripper à s'arrêter. Mais si ce n'est pas le cas, il devrait suffire de noter la valeur de retour du open (qui est le pid de streamripper) et faire un kill 2,$pid.
Jacques. -- Interactive Media Factory Création, développement et hébergement de services interactifs: SMS, SMS+, Audiotel... http://www.imfeurope.com/
Gauthier
Le Fri, 15 Apr 2005 14:34:35 +0200, Jacques Caron a écrit:
Salut, Déjà rien que le fait de fermer le pipe ça devrait inciter streamripper à s'arrêter.
Hélas, non, j'ai commencé par là. -- ^^ Gauthier (_____/°°-ç | _`-" )/@mmm|| nn nn FOE-Belgium : http://www.amisdelaterre.be
Le Fri, 15 Apr 2005 14:34:35 +0200, Jacques Caron <jc@imfeurope.com> a écrit:
Salut,
Déjà rien que le fait de fermer le pipe ça devrait inciter streamripper à
s'arrêter.
Hélas, non, j'ai commencé par là.
--
^^ Gauthier
(_____/°°-ç
| _`-"
)/@mmm||
nn nn FOE-Belgium : http://www.amisdelaterre.be
Le Fri, 15 Apr 2005 14:34:35 +0200, Jacques Caron a écrit:
Salut, Déjà rien que le fait de fermer le pipe ça devrait inciter streamripper à s'arrêter.
Hélas, non, j'ai commencé par là. -- ^^ Gauthier (_____/°°-ç | _`-" )/@mmm|| nn nn FOE-Belgium : http://www.amisdelaterre.be
Gauthier
Le Fri, 15 Apr 2005 12:25:13 +0000 (UTC), Nicolas George <nicolas$ a écrit:
« Open returns nonzero upon success, the undefined value otherwise. If the "open" involved a pipe, the return value happens to be the pid of the subprocess. » (perldoc perlfunc, paragraphe sur open)
Ça devrait répondre à la question.
Non, justement, j'essaie ceci :
if (open (STREAM, "$STREAMRIPPER |")) { $pid = $?; print "STREAM: ouvert avec pid $?n"; }
Et le script me renvoie
STREAM: ouvert avec pid 0
Puis, la sortie de streamripper qui se déroule correctement, ce qui est en contadiction avec ce que vous citez. -- ^^ Gauthier (_____/°°-ç | _`-" )/@mmm|| nn nn FOE-Belgium : http://www.amisdelaterre.be
Le Fri, 15 Apr 2005 12:25:13 +0000 (UTC), Nicolas George <nicolas$george@salle-s.org> a écrit:
« Open returns nonzero upon success, the undefined value otherwise. If the
"open" involved a pipe, the return value happens to be the pid of the
subprocess. »
(perldoc perlfunc, paragraphe sur open)
Ça devrait répondre à la question.
Non, justement, j'essaie ceci :
if (open (STREAM, "$STREAMRIPPER |")) {
$pid = $?;
print "STREAM: ouvert avec pid $?n";
}
Et le script me renvoie
STREAM: ouvert avec pid 0
Puis, la sortie de streamripper qui se déroule correctement, ce qui est
en contadiction avec ce que vous citez.
--
^^ Gauthier
(_____/°°-ç
| _`-"
)/@mmm||
nn nn FOE-Belgium : http://www.amisdelaterre.be
Le Fri, 15 Apr 2005 12:25:13 +0000 (UTC), Nicolas George <nicolas$ a écrit:
« Open returns nonzero upon success, the undefined value otherwise. If the "open" involved a pipe, the return value happens to be the pid of the subprocess. » (perldoc perlfunc, paragraphe sur open)
Ça devrait répondre à la question.
Non, justement, j'essaie ceci :
if (open (STREAM, "$STREAMRIPPER |")) { $pid = $?; print "STREAM: ouvert avec pid $?n"; }
Et le script me renvoie
STREAM: ouvert avec pid 0
Puis, la sortie de streamripper qui se déroule correctement, ce qui est en contadiction avec ce que vous citez. -- ^^ Gauthier (_____/°°-ç | _`-" )/@mmm|| nn nn FOE-Belgium : http://www.amisdelaterre.be
Jacques Caron
Salut,
On 15 Apr 2005 13:38:54 GMT, Gauthier wrote:
Le Fri, 15 Apr 2005 12:25:13 +0000 (UTC), Nicolas George <nicolas$ a écrit:
« Open returns nonzero upon success, the undefined value otherwise. If the "open" involved a pipe, the return value happens to be the pid of the subprocess. » (perldoc perlfunc, paragraphe sur open)
Ça devrait répondre à la question.
Non, justement, j'essaie ceci :
if (open (STREAM, "$STREAMRIPPER |")) { $pid = $?; print "STREAM: ouvert avec pid $?n"; }
Je ne vois pas le rapport avec le paragraphe cité. Vous utilisez $? qui est la valeur de sortie du dernier processus exécuté, qui ne s'applique évidemment pas ici. Il faut faire $pid=open...
Jacques. -- Interactive Media Factory Création, développement et hébergement de services interactifs: SMS, SMS+, Audiotel... http://www.imfeurope.com/
Salut,
On 15 Apr 2005 13:38:54 GMT, Gauthier <alouest.du.soleil@NOSPAM_skynet.be>
wrote:
Le Fri, 15 Apr 2005 12:25:13 +0000 (UTC), Nicolas George
<nicolas$george@salle-s.org> a écrit:
« Open returns nonzero upon success, the undefined value otherwise. If
the "open" involved a pipe, the return value happens to be the pid of
the
subprocess. »
(perldoc perlfunc, paragraphe sur open)
Ça devrait répondre à la question.
Non, justement, j'essaie ceci :
if (open (STREAM, "$STREAMRIPPER |")) {
$pid = $?;
print "STREAM: ouvert avec pid $?n";
}
Je ne vois pas le rapport avec le paragraphe cité. Vous utilisez $? qui
est la valeur de sortie du dernier processus exécuté, qui ne s'applique
évidemment pas ici. Il faut faire $pid=open...
Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/
Le Fri, 15 Apr 2005 12:25:13 +0000 (UTC), Nicolas George <nicolas$ a écrit:
« Open returns nonzero upon success, the undefined value otherwise. If the "open" involved a pipe, the return value happens to be the pid of the subprocess. » (perldoc perlfunc, paragraphe sur open)
Ça devrait répondre à la question.
Non, justement, j'essaie ceci :
if (open (STREAM, "$STREAMRIPPER |")) { $pid = $?; print "STREAM: ouvert avec pid $?n"; }
Je ne vois pas le rapport avec le paragraphe cité. Vous utilisez $? qui est la valeur de sortie du dernier processus exécuté, qui ne s'applique évidemment pas ici. Il faut faire $pid=open...
Jacques. -- Interactive Media Factory Création, développement et hébergement de services interactifs: SMS, SMS+, Audiotel... http://www.imfeurope.com/
Gauthier
Le Fri, 15 Apr 2005 15:45:37 +0200, Jacques Caron a écrit:
Il faut faire $pid=open... Jacques.
À présent, ça fonctionne, merci -- ^^ Gauthier (_____/°°-ç | _`-" )/@mmm|| nn nn FOE-Belgium : http://www.amisdelaterre.be
Le Fri, 15 Apr 2005 15:45:37 +0200, Jacques Caron <jc@imfeurope.com> a écrit:
Il faut faire $pid=open...
Jacques.
À présent, ça fonctionne, merci
--
^^ Gauthier
(_____/°°-ç
| _`-"
)/@mmm||
nn nn FOE-Belgium : http://www.amisdelaterre.be