2015-12-08 1 views
0

J'essaie de tuyau certaine entrée (comme dans l'entrée standard, et non pas un argument de ligne de commande) à partir d'un fichier dans un procédé en suspension sur une machine Linux, par exemple,entrée de tuyau à traiter en suspension

cat file > fg 

Cependant, je n'arrive pas à trouver la bonne commande pour cela. Jusqu'à présent, je l'ai essayé

file > fg 
file | fg 
file - | fg 
fg < file 
fg < cat file 

Je connais au moins un de ces travailleraient lors du démarrage d'un nouveau processus, mais je dois spécifiquement le faire avec un processus suspendu. Y a-t-il une séquence de commande spécifique à ce que je cherche? Sinon, je pourrais également rediriger l'entrée en utilisant python -c print, mais je n'ai pas eu de succès avec ça non plus.

Répondre

2

Je crois que ce n'est pas possible de le faire. Au moment où le processus est suspendu, il a déjà ses stdin, stdout et stderr descripteurs de fichiers ouverts. Pour ce que vous voulez, bash aurait besoin d'un moyen de fermer de force le stdin du processus suspendu, puis de le rouvrir avec une nouvelle entrée fd. Je serais très surpris s'il y avait un moyen de faire cela qui n'impliquait pas de code très compliqué (par exemple créer un thread dans le processus suspendu, suspendre le thread principal, utiliser le nouveau thread pour fermer et rouvrir le stdin descripteur de fichier). Je ne m'attendrais pas à ce qu'un tel processus se déroule correctement avec une certaine régularité.

Mais, je peux aussi me tromper.