/ / Zapis na stdin procesu odsłuchiwania wiadomości - bash, shell, ipc, stdin, deskryptor pliku

Napisz do standardowego wsłuchiwania wiadomości - bash, shell, ipc, stdin, deskryptor pliku

Powiedz, że zaczynam proces z:

#!/usr/bin/env bash

while read line; do
echo "stdin message: $line"
done < "/dev/stdin"

najwyraźniej ten proces nasłuchuje danych zapisywanych na jego stdin. Jak inny proces może do niego pisać?

Odpowiedzi:

1 dla odpowiedzi № 1

To zależy od tego, co proces stdin Jest podłączony do. Jeśli jest to potok nazwany, zapisuje do pliku potoku. Jeśli jest to pseudo-tty, zapisuje do odpowiedniego urządzenia master.

W większości innych przypadków nie jest to ogólnie możliwe.


1 dla odpowiedzi nr 2

Z Linuksem: Dodaj przed swoją pętlą while:

echo $$

W innej powłoce użyj PID (na przykład 12345) w następujący sposób:

echo "hello" >/proc/12345/fd/1