Question Enregistrement d'un ID de processus lors du détachement d'une commande dans Bash


Quand je détache la commande:

$ command &

Le résultat est une impression sur STDOUT:

[1] < PID >

Je voudrais surveiller ce PID. Cependant, je ne peux pas écrire cette sortie ailleurs que STDOUT! Comment puis-je le rediriger vers un fichier ou une variable?

J'ai essayé:

$ command 1> ./temp.txt &

Mais cela continue à trouver STDOUT!

Merci d'avance pour l'aide!


4
2017-07-17 00:35


origine




Réponses:


$! devrait contenir le PID du dernier processus en arrière-plan. Quelque chose comme...

$ command &
$ echo $! > temp.txt

Devrait vous donner un fichier nommé temp.txt avec le PID en elle.

Ou sur une seule ligne ...

$ command & echo $! > temp.txt

11
2017-07-17 00:53



Impressionnant. Cela ne répond pas à ma question exacte, mais c'est encore mieux! - Daeden
Oui, je pense que le problème est que stdout est la sortie de la commande que vous utilisez, mais que le code provient du shell. Donc, pour le capturer avec stdout, vous devez réellement l'exécuter dans un sous-shell et en capturer la sortie. Il suffit de penser à ce qui se passe sans le tester. - Bill Heller